【技術書2】『実践Vim』 を読んだ
実践Vim を読んだ
この本では、Vimでの作業効率を上げるTipsが121個紹介されている。
以下は特に便利だと感じた8個のTipsを書いておく。
1. *
コマンドで単語検索の効率を上げる
*
コマンドは、その時点でカーソル位置にある単語を検索する。
今まで、word
を検索するときは、検索用のプロンプトを表示して/word
としていたが、単にカーソルをこの単語の上に置いて、*
キーを叩くだけで同様のことが実現できるようになった。
2. 繰り返しコマンド
.
ドットコマンドを使うと、直前の変更を繰り返すことができる。
3. 数字の加算には<C-a>コマンドを使う
<C-a>
コマンドは、カーソル位置もしくはカーソル以降にある数に数を加算する。
<C-x>
コマンドは逆に、数を減算する。
10<C-a>
とすれば、「5」が「15」に変わる。
4. Vimのテキスト操作は全て オペレータ + モーション で構成されている
Vimのテキスト操作は オペレータ(操作の種類) x モーション(操作の対象) の組み合わせでできている。
たとえば、daw
は削除するオペレーションコマンドのd
と単語全体を意味するモーションaw
の組み合わせ。
オペレータやモーションを新たに学習することで、確実により多くの考えを表現できるようになる。
ちなみにオペレータを2回繰り返すと、オペレーションが現在の行に適用される。
5. 挿入モードでヤンクしたばかりのテキストを貼り付ける
Vimが記憶している文字列、コマンドはレジスタと呼ばれる場所に格納されていて、挿入モードでは<C-r>
を押してアクセスできる。
ヤンクしたテキストは0(zero)
レジスタに入っているので、<C-r>0
を叩くと、さっきヤンクしたばかりのテキストを貼り付けることができる。
レジスタの中身は:reg
または:registers
コマンドで覗く。
6. 置換モードで既存のテキストを上書き
ノーマルモードからR
コマンドを入力することで置換モードに移行できる。r{char}
コマンドを使うと、1文字だけを上書きしてノーマルモードに戻る。
置換モードではカーソル上の文字列を入力する文字で置き換えることが可能。
7. 3種類のビジュアルモードを使いこなす
Vimには3種類のビジュアルモードがある。
v
コマンドは文字指向のビジュアルモード。
V
コマンドで行単位のビジュアルモードが有効になる。
<C-v>
コマンドが痒い所に手が届くブロック指向のビジュアルモードを呼び出す。
<C-v>
コマンドはいわゆる、矩形選択が可能になるモードで、行頭に一括でコメントアウト文字列を入力するときや、各行末に,
コンマなどの文字を入力するときに使える。
詳しくは「矩形選択 vim」などで検索。
8. レジスタを扱えるようになる
Vimではカット/コピー/ペースト操作の全てで単一のクリップボードを使うのではなく、複数のレジスタが用意されている。
コマンドに"{register}
を前置すると使いたいレジスタを指定できる。aレジスタにヤンクしたければ"ayiw
を実行すればいいし、"ap
でそこからペーストできる。
覚えておきたいレジスタはこれ。
""
無名レジスタ: レジスタを指定しない場合、Vimは無名レジスタを使用する。"0
ヤンクレジスタ: ヤンクした場合、つまりy{motion}
コマンドが使われたときのみ、このレジスタが使われる。ヤンク時には無名レジスタも上書きする。"_
ブラックホールレジスタ: /dev/null と思っておけばいい。無名レジスタを上書きしたくないときに使う。"%
ちょっと特殊なレジスタで、現在のファイル名が入っているレジスタ。
まとめ
『実践Vim』はVimのデフォルト機能に絞って解説されているので、ssh先でVimを使う時でも活用することができる。
まだまだ全てのTipを理解したわけではないので、時々見返したい。