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> |
参考

h3pei
フリーランスのソフトウェアエンジニア。Ruby / Rails アプリケーションの開発が得意領域。設計・実装・運用まで含めてプロダクト開発が好きです。
Questalという目標達成コミュニティサービスを開発しました。仲間と一緒に目標達成に取り組みたい方はぜひご利用ください。
<< 前の記事ビルドとかコンパイルとかリンクとか