swap.vim についてあれこれ

先日、 swap.vim というものを書きました。コンマ区切りの要素の順番を簡単に入れ替えるためのプラグインです。

今のところ、デフォルトではコンマで区切られたテキストだけに反応します。しかし、ユーザーが設定することでコンマ区切り以外のテキストも扱えます。詳しくは help に書いてありますが、よくわからなければ issues で聞いてください。区切り文字にはゼロ幅マッチも使えるので、例えばキャメルケース(あるいはパスカルケース)の文字列の部分を入れ替えたりできます。

let g:swap#rules  = deepcopy(g:swap#default_rules)
let g:swap#rules += [
      \   {'mode': 'n', 'body': '\<\h\w*\>', 'delimiter': ['\C\ze[A-Z]']},
      \ ]

demo1

この設定自体はそんなに便利でもないですね。他にも、行選択あるいは矩形選択と組み合わせて使うと行単位で入れ替えたりできます。これには特に設定は必要ありません。 demo2

以前は編集範囲が広いと動作が遅くなっていたのが、最近のコミットでずいぶん改善しました。また、何か思いつけばよくしていこうと思います。