vim-users.jp

Hack #62: カーソル下のキーワードをバッファ内全体で置換する

Posted at 2009/08/25
このエントリーをはてなブックマークに追加

問題

Hack #51: カーソル下のキーワードを検索する でカーソル下のキーワードを単語境界を考慮した上で検索することができます。 ここで検索だけではなく置換するにはどうすればいいでしょうか。

解決

~/.vimrcに以下を記述します。

nnoremap <expr> s* ':%substitute/\<' . expand('<cword>') . '\>/'

以後、s*と打鍵したあと置き換え文字列と/g<Cr>などを打鍵すると置換が行なわれます。

議論

バッファ内全体からカーソル下のキーワードをbbbという文字列に置換するには、以下のコマンドを実行します。

:exe '%s/\<' . expand('<cword>') . '\>/bbb/g'

これは以下の略称です

:execute '%substitute/\<' . expand('<cword>') . '\>/bbb/g'

もっとも、これを毎回打鍵するのは酷です。 今回は~/.vimrcファイルに上記コマンドの途中までに該当するものを入力してくれるキーマッピングを新たに定義することで、 問題を解決しました。 他にもcnoreabbrevを用いる解決方法が考えられます。

ujihisa

もどる
blog comments powered by Disqus