morisolog

ソフトウェア関連の技術書まとめ:新卒3年目エンジニア

【技術書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』はVimのデフォルト機能に絞って解説されているので、ssh先でVimを使う時でも活用することができる。

まだまだ全てのTipを理解したわけではないので、時々見返したい。