Vimでカーソル行のテキストを簡単に選択/処理する


2012年 01月 17日

問題

世間一般のエディタではカーソルを行頭や行末に移動するキーが
C-a だったり C-e だったり Home だったり End だったりと、
それなりに押下し易い配置になっているのですが、
Vim では何を思ったのか ^$ という謎のキー割り当てになっています。
この謎のキー割り当てにはそれなりの理由があると思われるのですが、
時々不便に思う場合があります。

例えば「カーソル行のテキストをコピーして他のアプリケーションにペーストする」というシチュエーションを考えてみましょう。
コピー自体は "*yy ですぐできるのですが、これでは改行文字が含まれるため、ペーストした際に悲しい結果を招くことが多々あります。
^vg_"*y0v$h"*y とすれば改行文字抜きでコピーはできるものの、
キー押下難易度の高さにストレスが溜まってしまいます。
どうにかして快適にカーソル行のテキストを選択/処理できないものでしょうか。

解答

vim-textobj-line を使います。
このプラグインをインストールすると

  • ^vg_"*y と同じことが vil"*y"*yil
  • 0v$h"*y と同じことが val"*y"*yal

できるようになります。

単にこれだけの代物ですが、あるとないとでは快適度合が段違いです。

余談

Vim を使い始めて今年で10周年ほどになりますが、g_の存在は vim-textobj-line を書いている最中に初めて知りました。

次回は Emacs 編です。