surround.vimの使い方
surround.vimとは
プログラミングをしている時に, あとから括弧を付けたくなったり, 括弧の種類を変えたくなることって結構あったりすると思います. そんな時に大活躍するのが, surround.vimです. 指定した範囲を括弧で囲ったり, すでにある括弧を編集したりできます.
surround.vimのインストール
NeoBundleを使ってのインストールについてです. .vimrcに以下の一文を追加し, 保存します.
NeoBundle 'surround.vim'
その後, 以下の2つのコマンドを打ちましょう.
:source ~/.vimrc :NeoBundleInstall
surround.vimの操作方法
Hello World!
まずはこの文の全体に'(シングルクォート)をつけます。方法は、yss'と打ちます。もちろんノーマルモードの状態で打ちます。カーソルは囲いたい文の上ならどこでもいいです.
'Hello World!'
になりました。次は'(シングルクォート)を消します。ds'と打ちます。
Hello World!
元に戻りました。
次は、ビジュアルモードで囲んだ部分を'(シングルクォート)で囲って見ましょう。まずH(HelloのH)の上でvを押します。その後l(える)を押して、oの上までカーソルをずらします。カーソルがoの上に来たら、S'(Sは大文字!)を押します。
'Hello' World!
こうなりました。では、次は'で囲まれた部分を消してみましょう。カーソルが'Hello'の上のどこかにある状況で、di'とうてば、
'' World!
みたいになります。
ではちょっと戻って、
'Hello' World!
という状態にしましょう。今から、'(シングルクォート)を"(ダブルクォート)に変えます。カーソルが'Helloの上の何処かにある状態で、cs'"と押します。
"Hello" World!
となりました。
あと、一つの単語だけを'で囲みたい場合は、ysiw'とかもできます。たとえば上の文の状態のときに、Helloの上にカーソルを持ってきて、ysiw'とすると
"'Hello'" World!
となります。
基本操作はこんな感じです。最後に、表にまとめます。
コマンド | 動作 |
---|---|
ds' | 文を囲んでいる ' を消す |
di' | ' で囲まれた部分を消す |
cs'" | ' を " に変更 |
ci' | ' で囲まれた部分を消して, インサートモードに入る |
S' | ビジュアルモードで選択した部分を ' で囲む |
yss' | 文を ' で囲む |
ysiw' | カーソルがある単語を ' で囲む |
'の部分はいろいろ変えられます。タグを付けたいときは、'の代わりにtとうつと、コマンド入力欄にフォーカスが移動して、<と書いてある状態になります。なのでそこでpとおして、enterを押すと、
<p>Hello World!</p>
となります。
タグを消したい場合は、dstとすれば消えます。
ちなみに、パッと覚えにくかったので、覚えるときは、
ds ・・・ d(delete)s(surround)
di ・・・ d(delete)i(inside)
cs ・・・ c(change)s(surround)
ci ・・・ c(change)i(inside)
yss ・・・y(yank)s(surround)s(sentence)
ysiw ・・・ y(yank)s(surrond)iw(inner word)
みたいに覚えてます。ホントは違うかもしれないけど、覚えやすかったので(笑)
[追記] 基本的にsが付かないコマンドで操作されるものは, Vimのテキストオブジェクトという機能みたいです. ただ, とても便利なので, このまま記載しておくことにします.