Vimで、カンマで連結されるようなテキストの左右を交換したい。

目的
f($arg1, $arg2);

のようなコードを、

f($arg2, $arg1);

のように書き換える場合、通常は$arg1, を別々に移動しなければなず、二度手間になる。二度手間どころか、複数のレジスタを使って適切な順番で処理しないと、typoしやすい。

対処

argumentative.vim を使う。

成功

上記の例の場合は、$arg1上で>,と入力するだけで書き換えが可能。

その他

テキストオブジェクトも追加され、なかなか便利。

f($arg1, $arg2);

を、$arg2上でda,とすれば、

f($arg1);

とできたりする。


また、単純にカンマを見ているせいか、

{ a: 1, b: 2 }

のような形式も扱えるので、JavaScriptなど余分なカンマが使えない場合に特に便利。*1

*1:余分なカンマが許されているなら、カンマごと移動することも可能