Quantcast
Channel: Vimタグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 5608

[Vim/vim-mode-plus for Atom] 秒速で初心者からエキスパートになる。 たった7ステップで。

$
0
0

秒速で初心者からエキスパートになる。 たった7ステップで。

vimconf2016の発表で使用したサンプルデモ

High speed tour from beginner to expert in 7 stepsの抜粋版

※ step5以降は要 vim-mode-plus

  1. ビジュアルモードは知ってるよね?
  2. TextObject を使えや
  3. もっとええ Operator つかえや
  4. Operator と TextObject を組み合わせてみよう
  5. Operator の動作を oで変更してみよう. Occurrence に対して、Operate するようになるよ!
  6. preset-occurrence を使ってみよう
  7. persistent-selection(消えないセレクション)を使ってみよう

チュートリアルで使用するテキスト

This is 1st paragraph text.
2nd line also include text text text.
3rd line include text text text

This is 2nd paragraph text.
2nd line also include text text text.
3rd line include text text text
4th text

1. ビジュアルモードは知ってるよね?

最初のパラグラフを abcに書き換えて.

visual-modeでパラグラフ選択できるよね?

  1. v j j $ or V j j
  2. dで消す。
  3. iinsert-modeにはいって
  4. abcと入力したら escape

2. TextObject を使えや

TextObjectを使えばもっと良くなるよ。

パラグラフ全体を i p(inner-paragraph) で選択してみろ。

  1. v i p
  2. dで消す.
  3. iinsert-modeにはいって
  4. abcと入力したら escape

3. もっとええ Operator つかえや.

もっと良い Operatorを使えばもっと良くなる。

dで消してから iinsert-modeに入るより、cを使えば両方一気にやれるぞ!

  1. v i p
  2. cchangeしよう.パラグラフ全体が deleteされて、今キミは insert-modeにいる!
  3. abcと入力したら escape

4. Operator と TextObject を組み合わせてみよう

visual-modeを使わなければ、もっと良くなる。

  1. c i pでパラグラフ自体を changeしてみて。Operator が最初で、次に Target(TextObject) の順番だ
  2. abcと入力したら escape
  3. 2番目のパラグラフで .リピートしてみよう

5. Operator の動作を oで変更してみよう。 Occurrence に対して、Operate するようになるよ!

新しいミッションを与える

今回は、パラグラフ全体を abcに変えるんじゃなくて、パラグラフ内の textという文字列のみを abcに変えてほしい。

o Operator modifier は、まさにこの為にある!

  1. 最初のパラグラフの textという文字に移動して
  2. c o i pc o pと打って
  3. abcと入力したら escape
  4. 2番目のパラグラフで .リピートしてみよう

何が起こった?

oは、カーソルの下の単語をまず、keyword としてピックアップする。そして、ターゲットの中で出くわす(occurrences)、keyword に対して Operator を apply するようになるんだ。

今までみたいに、パラグラフ全体を changeして abcに変える代わりに

パラグラフの中で出くわす text(カーソル下の単語) を changeするようになったんだ。

内部的には、こうなっている

  • 通常: パラグラフを selectして change
  • o: パラグラフを selectして, textを更にその中から selectし直して(re-select) change

6.preset-occurrence を使ってみよう

新しいミッションを与える

今回は textlineの両方を abcに変更して欲しい。

つまり 2つ!!のキーワードを変えてほしい。

preset-occurrenceはこういう時に使える。

oをオペレーションの途中に挟み込む代わりに、前もって occurrence keyword を指定しておけるんだ。

  1. 1行目の textに移動して g oとタイプ
  2. 2行目の lineに移動して g oとタイプ
  3. c o i pc o pと打って.
  4. abcと入力したら escape.
  5. 2番目のパラグラフで .リピートしてみよう

7. persistent-selection(消えないセレクション)を使ってみよう

新しいミッションを与える

textlineの両方を abcに変更して欲しい。ただし、2番目のパラグラフの2行目だけは変えないで欲しい。

なんてこった。単純な .リピートが使えない!

persistent-selectionはこういう時使える。

  1. textlineg oで preset-occurrence して
  2. v i pでパラグラフ選択して enter.普通の selection が persistent-selectionになった
  3. 2番目のパラグラフの1行目に移動して、V enter
  4. 2番目のパラグラフの3行目に移動して、V j
  5. よし、準備は整った.cで変更しよう
  6. abcと入力したら escape

さらに難しいミッション

以下のサンプルテキストから、 vim-mode-plus のコマンド名を PascalCase 形式で抜き出して、アルファベット順に並び替えて。

From-short

"'": 'vim-mode-plus:move-to-mark-line'

To-short

MoveToMarkLine

From-full

'`': 'vim-mode-plus:move-to-mark'
"'": 'vim-mode-plus:move-to-mark-line'

'/': 'vim-mode-plus:search'
'?': 'vim-mode-plus:search-backwards'
'*': 'vim-mode-plus:search-current-word'
'#': 'vim-mode-plus:search-current-word-backwards'
'n': 'vim-mode-plus:repeat-search'
'N': 'vim-mode-plus:repeat-search-reverse'

'%': 'vim-mode-plus:move-to-pair'

')': 'vim-mode-plus:move-to-next-sentence'
'(': 'vim-mode-plus:move-to-previous-sentence'
# ')': 'vim-mode-plus:move-to-next-sentence-skip-blank-row'
# '(': 'vim-mode-plus:move-to-previous-sentence-skip-blank-row'

'[': 'vim-mode-plus:move-up-to-edge'
']': 'vim-mode-plus:move-down-to-edge'

'}': 'vim-mode-plus:move-to-next-paragraph'
'{': 'vim-mode-plus:move-to-previous-paragraph'

'G': 'vim-mode-plus:move-to-last-line'
'g g': 'vim-mode-plus:move-to-first-line'

'H': 'vim-mode-plus:move-to-top-of-screen'
'L': 'vim-mode-plus:move-to-bottom-of-screen'
'M': 'vim-mode-plus:move-to-middle-of-screen'

To-full

MoveDownToEdge
MoveToBottomOfScreen
MoveToFirstLine
MoveToLastLine
MoveToMark
MoveToMarkLine
MoveToMiddleOfScreen
MoveToNextParagraph
MoveToNextSentence
MoveToNextSentenceSkipBlankRow
MoveToPair
MoveToPreviousParagraph
MoveToPreviousSentence
MoveToPreviousSentenceSkipBlankRow
MoveToTopOfScreen
MoveUpToEdge
RepeatSearch
RepeatSearchReverse
Search
SearchBackwards
SearchCurrentWord
SearchCurrentWordBackwards

Viewing all articles
Browse latest Browse all 5608

Trending Articles