Home > Vim Hacks > Hack #71: 編集操作を繰り返す

Hack #71: 編集操作を繰り返す

問題

バッファ中のある単語FOOを別の単語BARに置換するとしましょう。 これには

:%s/FOO/BAR/g

というコマンドでできるのですが、これはバッファ中の全てのFOOをBARに置換します。 全てではなく一部のFOOのみを置換したい場合はどうすれば良いでしょうか。

単純な方法は、該当する単語を

ciwBAR<Esc>

のようにして置換することですが、置換したい箇所で毎回このコマンドを入力するのは 苦痛です。どうにかして簡単にできないでしょうか。

解決方法

Vimでは最後に行なわれた編集操作を繰り返すことができます。 繰り返しを行うにはNormal modeで

.

を入力します。例えば最初に挙げた

ciwBAR<Esc>

を行なった後は.を入力するだけで同じ操作を行うことができます。

応用例

.による繰り返しはcだけでなく、 Normal modeから実行できるコマンドであればほぼ全てを繰り返すことができます。

なお、最初に挙げた単語置換を行なう場合、 予め置換したい単語を/FOOなどで検索しておけば、

n.n.n.

などとすることで次々と単語置換を行うことができます。

:%s/FOO/BAR/gc

とすれば各箇所で置換を行うかどうかを対話的に指定できるのですが、 単語の出現箇所が多く置換する箇所がまばらな場合には n.n.n.の方が便利です。

また、置換したいテキストが「FOOBARのBARの部分」(/FOO\zsBAR) のように特定の単語ではない複雑なパターンの場合、 textobj-lastpat プラグインをインストールしておくと

ci/XXX<Esc>

のようにi/で検索にマッチしている箇所を選択することができ、 便利です。

参考資料

kana
このエントリーをはてなブックマークに追加
はてなブックマーク - Hack #71: 編集操作を繰り返す
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:0

Trackback URL for this entry
http://vim-users.jp/2009/09/hack71/trackback/
Listed below are links to weblogs that reference
Hack #71: 編集操作を繰り返す from Vim-users.jp

Home > Vim Hacks > Hack #71: 編集操作を繰り返す

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

    Return to page top