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
を用いる解決方法が考えられます。
もどる
blog comments powered by Disqus