1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

vim-surround でシングル・ダブルコーテーションどちらで囲むかを切り替えやすくする

Posted at

はじめに

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 というコマンドにマッピングされた関数にあたるのですが、それを新たにffttというコマンドにマッピングしています。

.vimrc
" ダブルコーテーション→シングルコーテーション
nmap ff <Plug>Csurround"'
" シングルコーテーション→ダブルコーテーション
nmap tt <Plug>Csurround'"

こちらで以上です。これで fftt を打つと文字列を囲んでいるコーテーションの種類を切り替えることができます。
キーマップはお好みで変えても良いと思います。

おわりに

今回はコーテーションの切り替えだけでしたが、 vim-surround には他にも機能がありそうなので、チェックしてみようと思います!

参考

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?