Vimでヤンクした文字列と対象を簡単に入れ替えるoperator-replaceプラグインを使う
参考にした記事でも書かれているけど、このプラグインは文章では説明しづらいけど、使ってみるととても便利だと納得できる系。おすすめ。 大雑把に言うと、普段3ステップでやっているコピペ作業を、2ステップで出来るようにするプラグイン、という感じ。
インストール&セットアップ
以下の2つのプラグインをインストールする。
operator-user - Define your own operator easily : vim online operator-replace - Operator to replace text with register content : vim online
.vimrc
には以下のように記述する。
" _wなどでYankしてるもので置き換える
nmap _ <Plug>(operator-replace)
割り当てるキーは上記である必要はなく、参考にした記事やいつもvimrcの参考にさせてもらっているyuroyoroさんの記事ではRに割り当てていた。たしかにR(eplace)のほうが覚えやすいかもしれないけれど、上書きモードを潰すのはちょっと勿体無い気がしたので、とりあえずアンダースコアにした。
operator-replaceプラグインの使い方
例えばこんなコードがあったとして、"you win."と出力させるために、hoge
の値を"yay! yay!"に変えたくなったとする。
hoge = "booo! booo!"
if hoge == "yay! yay!"
"you win."
end
普通は、
- 3行目のif文の"yay! yay!"の中にカーソルを持って行き、yi"と打ってヤンクする
- 1行目の変数hogeの"booo! booo!"の中にカーソルを持って行き、di"と打って中身を削除する
- そのまま同じ位置で、"0Pと打ってペーストする
という3ステップでコピペを完了させる。というか自分はそうしてる。これをoperator-replaceプラグインを使って操作すると、
- 3行目のif文の"yay! yay!"の中にカーソルを持って行き、yi"と打ってヤンクする
- 1行目の変数hogeの"booo! booo!"の中にカーソルを持って行き、_i"と打って中身を入れ替える
の2ステップでコピペができるようになる。地味だけど、かなり便利になる!
vim神のplugin operator-replaceを導入してみて思ったこと - yamazakiccsのvim日記