2013-08-17
surround.vimことはじめ
surround.vimを導入した。
とりあえず、基本的な使い方をいくつかのブログ記事を参考にまとめておいた。
surround.vim概要
テキストを囲うモノを編集するプラグイン。 テキストオブジェクトの操作を強化する感じ。
インストール
NeoBundleを使った場合のインストール方法。以下の1行を.vimrcに追記。
NeoBundle 'tpope/vim-surround'
vimを起動し、:NeoBundleInstallコマンドの実行でインストール完了。
surrond.vimの使い方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> |
参考
<< 前の記事ビルドとかコンパイルとかリンクとか