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

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

問題

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
このエントリーをはてなブックマークに追加
はてなブックマーク - Hack #62: カーソル下のキーワードをバッファ内全体で置換する
Share on Facebook
Post to Google Buzz
Bookmark this on Google Bookmarks
Bookmark this on Yahoo Bookmark
Bookmark this on Livedoor Clip
Share on FriendFeed

Comments:0

Comment Form
Remember personal info

Trackbacks:1

Trackback URL for this entry
http://vim-users.jp/2009/08/hack62/trackback/
Listed below are links to weblogs that reference
Hack #62: カーソル下のキーワードをバッファ内全体で置換する from Vim-users.jp
trackback from Alone Like a Rhinoceros Horn 10-07-03 (土) 4:44

[vim]Vim の検索/置換系キーマップを晒してみる

一連の Vim Hacks を読んでかなりパワーアップしたので、自分の vimrc から検索/置換系コマンドのキーマップを抜き出して晒してみます。 置換コマンドは eregex.vim のもの(:S)を使ってい…

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

Search
Feeds
Links
  • 公式
  • 勉強会
  • 情報
  • コミュニティ
  • Meta
    Etc
    Creative Commons License
    This blog is licensed under a Creative Commons License.

    Return to page top