Vim Advent Calendar 2013 83日目: switch.vim で文字列リテラルを切り替える

この記事は Vim Advent Calendar 2013 83日目の記事になります。

  • 元ネタ


『そういえば switch.vim ってのがあったなー』と思って前から気になっていたので簡単に試してみました。

[プラグイン]

NeoBundle "AndrewRadev/switch.vim"

[設定]

" 文字列リテラルをトグル
" string → 'string' → "string" → string...
"
" string に記号が含まれている場合は
" string → 'string'
" の変換はうまくいかないかも
let g:switch_custom_definitions =
\[
\   {
\         '\(\k\+\)'    : '''\1''',
\       '''\(.\{-}\)''' :  '"\1"',
\        '"\(.\{-}\)"'  :   '\1',
\   },
\]

" 呼び出し用のキーマッピング
nnoremap <Leader>t :<C-u>Switch<CR>


とりあえず、簡単に使ってみたんですが正規表現が使用できるのでなかなかに便利そう。
あとデフォルトで設定されているものもいくつかあって、例えば filtype=ruby とかの場合は上記のように g:switch_custom_definitions を設定しなくてもデフォルトで

:string"string"'string'

と切り替えてくれます。
便利。
もうちょっと色々と使い勝手を試してみたいですね。