はじめに
ruby を使っていると、文字列をコーテーションで囲むとき、場合によってシングルコーテーション・ダブルコーテーションを使い分けることがあると思います。
その際僕は毎回手動で始端と終端のコーテーションを切り替えていたのですが、vim-surroundという Vim プラグインを使うと簡単にできそうだったので、試してみました。
vim-surround とは
カッコやコーテーションといった記号で囲まれた文字列について、囲んでいる記号を簡単に編集できるプラグインです。
例えば以下のようにダブルコーテーションで囲まれた文字列をシングルコーテーションに変更したい時は、
"Hello world!"
プラグインをインストールした上で cs"'
とコマンドを打つと、シングルコーテーションに変更してくれます。cs
は ChangeSurroundings の略です。
'Hello world!'
よりキー入力を少なくしたい
vim-surround の基本コマンドを使うだけでやりたいことはほぼ実現できたのですが、
せっかくなのでよりキー入力を短くしたかったので、以下のコマンドで切り替えられるように設定します。
- シングル→ダブルへの切り替えを
ff
で - ダブル→シングルへの切り替えを
tt
で
手順
vim-surround インストール
vim-surround をインストールします。この例では dein.vimを使っています。
.vimrc
call dein#add('tpope/vim-surround')
キーマップ設定
次に、vim-surrond の関数をキーマップに指定します。Csurrond
というのが cs
というコマンドにマッピングされた関数にあたるのですが、それを新たにff
、tt
というコマンドにマッピングしています。
.vimrc
" ダブルコーテーション→シングルコーテーション
nmap ff <Plug>Csurround"'
" シングルコーテーション→ダブルコーテーション
nmap tt <Plug>Csurround'"
こちらで以上です。これで ff
か tt
を打つと文字列を囲んでいるコーテーションの種類を切り替えることができます。
キーマップはお好みで変えても良いと思います。
おわりに
今回はコーテーションの切り替えだけでしたが、 vim-surround には他にも機能がありそうなので、チェックしてみようと思います!