作業ノート

様々なまとめ、雑感など

実践Vim

実践Vimを読んだ。元々この手の本はほとんど読まないけど、コア機能を中心に説明していると知って興味を持ったので、読んでみた。

以下は、今回読んで新しく知ったことや気づいたことについて。

normalコマンド(TIP30)

‘<,’>normal .

で、ビジュアルモードで選択した範囲で、行単位に直前に実行したExコマンドを適用できる。

ファイル全体に適用したいなら

%normal .

となるし、記録したコマンドを

%normal @a

のようにして、適用することもできる。

論理行、表示行と移動(TIP47)

Vimでファイルを表示するとき、1行が長くてVimの横幅を超えてしまうと、その行を折り返して表示する。このとき、折り返されて表示された行は表示行であり、折り返しを含む本来の行は論理行である。

行数表示(set number)しているなら、番号が振られていない行が表示行で、振られている行から、次の番号の一つ前の行までが論理行になる。

jkでの行の移動は、いずれも論理行の移動。論理行が複数行で表示されていて、折り返された表示行に移動したいときは、gjgkのように、先頭にgをつける。

また、これは行頭(0,^)、行末($)の移動でも同様にすることで、表示行の行頭・行末、論理行の行頭、行末に移動できる。

ちなみに書籍では、論理行(real line)と表示行(display line)と表現していたのでここでも同様に表現したが、個人的には英語の方が意味をつかみやすい。

一文字検索(TIP49)

該当する一文字を検索するときは

f{char}

t{char}

で検索できる。これらの違いは、検索文字にカーソルをのせるか(f)、検索文字の手前にするか(t)。

同様の検索を逆順で行いたいなら、それぞれF,Tにする。また、一度検索した文字を再度検索するときは;、逆順なら,にする。

\vパターンと\Vパターン(TIPS73,74)

Vimの検索や置換などで正規表現の書き始めに

\v

をつけると、それ以降の全ての特殊記号に関する規則を正規化できる。一方で

\V

をつけると、それ以降の全ての特殊記号に関する規則を通常の文字として扱える。

正規表現を使った検索をしたいなら、\vパターンを使って文字の特殊化のための\の記述を避ける。正規表現が必要ない文字列検索をしたいなら、\Vパターンを使って、文字の特殊化を避ける。

参考

実践Vim 思考のスピードで編集しよう!

実践Vim 思考のスピードで編集しよう!