surround.vimを導入した。
とりあえず、基本的な使い方をいくつかのブログ記事を参考にまとめておいた。
surround.vim概要
テキストを囲うモノを編集するプラグイン。
テキストオブジェクトの操作を強化する感じ。
インストール
NeoBundleを使った場合のインストール方法。
以下の1行を.vimrcに追記。
NeoBundle 'tpope/vim-surround'
vimを起動し、:NeoBundleInstallコマンドの実行でインストール完了。
surrond.vimの使い方2種類
1. 既に囲んでいるモノへの操作
2. 新たにテキストオブジェクトを囲む編集
基本コマンド
s,S: surround
d: delete
c: change
y: you
S: 選択中のテキストを任意の文字で囲う
対象の文字列:Hello World
実行コマンド* | 実行結果* |
---|---|
S' | 'Hello World' |
S" | "Hello World" |
S[ | [Hello World] |
S<p> | <p>Hello World</p> |
S@ | @Hello World@ |
HTMLタグとか括弧とか、対になるものはちゃんと対応したモノで囲んでくれる。
c: テキストを囲うモノを変更する(change surround)
※「*」の位置にカーソルがあるものとする
対象文字列:'He*llo World'
実行コマンド* | 実行結果* |
---|---|
cs'" | "Hello World" |
対象文字列:<p>Hell*o World</p>
実行コマンド* | 実行結果* |
---|---|
cst<div> | <div>Hello World</div> |
d: テキストを囲うモノを削除する(delete surround)
対象文字列:'He*llo World'
実行コマンド* | 実行結果* |
---|---|
ds' | Hello World |
対象文字列:<p>Hell*o World</p>
実行コマンド* | 実行結果* |
---|---|
dst | Hello World |
ys: 囲われるテキストの選択とテキストを囲う操作の同時実行(you surround)
対象文字列:'He*llo World'
実行コマンド* | 実行結果* |
---|---|
ysaw( | '( Hello ) World' |
ysi' | '( Hello World )' |
ysa' | ( 'Hello World' ) |
対象文字列: a = Array.new *foo, bar
実行コマンド* | 実行結果* |
---|---|
ys$) | a = Array.new *( foo, bar ) |
これをフルで使うには、テキストオブジェクトをおさらいする必要がありそう。
★ yssコマンドで行全体がターゲットになる
対象文字列: f*oo bar baz
実行コマンド* | 実行結果* |
---|---|
yss' | 'foo bar baz' |
<C-G>: インサートモードでsurround.vimを使う
実行コマンド* | 実行結果* |
---|---|
<C-G>s<div> | <div>*</div> |
※参考
http://vimblog.hatenablog.com/entry/vim_plugin_surround_vim
http://doruby.kbmj.com/aisi/20100310/surround.vim__
http://blog.scimpr.com/2012/09/08/surround-vim%E3%83%81%E3%83%A5%E3%83%BC%E3%83%88%E3%83%AA%E3%82%A2%E3%83%AB%E3%82%92%E3%81%9F%E3%82%81%E3%81%99/