vim

vimのvisualモードを有効に使いたい

投稿日:2014年1月26日 更新日:

素早く選択する

テキストオブジェクト

導入に

Vimテキストオブジェクト from Wataru Fukunaga

日本語ヘルプより(バッククォートがうまくエスケープできなかったので[バッククォート]に置き換えてます)

vを押してその後、次のキーを押せばその範囲を素早く選択できる

aw“a word”、[count] word 選択します(参照 |word|)。
単語の前後に続いているホワイトスペースもともに含められ
ますがカウントはされません。
行単位ビジュアルモードで使われたときは、”aw” は文字単
位ビジュアルモードに切り替えます。
iw“inner word”、[count] word 選択します(参照 |word|)。
word の間のホワイトスペースもカウントされます。
行単位ビジュアルモードで使われたときは、”iw” は文字単
位ビジュアルモードに切り替えます。
aW“a WORD”、[count] WORD 選択します(参照 |WORD|)。
単語の前後に続いているホワイトスペースも含められます
がカウントはされません。
行単位ビジュアルモードで使われたときは、”aW” は文字単
位ビジュアルモードに切り替えます。
iW “inner WORD”、[count] WORD 選択します(参照 |WORD|)。
ホワイトスペースもカウントされます。
行単位ビジュアルモードで使われたときは、”iW” は文字単
位ビジュアルモードに切り替えます。
as“a sentence”、[count] 文選択します(参照 |sentence|)。
ビジュアルモードで使われたときは、文字単位になります。
is“inner sentence”、[count] 文の内部を選択します(参照
|sentence|)。
ビジュアルモードで使われたときは、文字単位になります。
ap“a paragraph”、[count] 段落選択します(参照
|paragraph|)。
例外: 空行 (空白だけからなる) も段落の境界になります。
ビジュアルモードで使われたときは、行単位になります。
ip“inner paragraph”、[count] 段落の内部を選択します(参照
|paragraph|)。
例外: 空行 (空白だけからなる) も段落の境界になります。
ビジュアルモードで使われたときは、行単位になります。
a]
a[
“a [] block”、[count] ‘[‘ ‘]’ block を選択します。この
コマンドは後方に [count] 番目に現れる ‘[‘ を探し、それ
から対応する ‘]’ を探します。そしてその2つに囲まれたテ
キストを ‘[‘ と ‘]’ も含めて選択します。
ビジュアルモードで使われたときは、文字単位になります。
i]
i[
“inner [] block”、[count] ‘[‘ ‘]’ block の内部を選択
します。このコマンドは後方に [count] 番目に現れる ‘[‘
を探し、それから対応する ‘]’ を探します。そしてその2つ
に囲まれたテキストを ‘[‘ と ‘]’ を除いて選択します。
ビジュアルモードで使われたときは、文字単位になります。
a)
a(
ab
“inner block”、[count] block の内部を選択します。
“[count] [(” からそれに対応する ‘)’ までで、'(‘ と ‘)’
を除きます(参照 |[(|)。
ビジュアルモードで使われたときは、文字単位になります。
i)
i(
ib
“inner block”、[count] block の内部を選択します。
“[count] [(” からそれに対応する ‘)’ までで、'(‘ と ‘)’
を除きます(参照 |[(|)。
ビジュアルモードで使われたときは、文字単位になります。
a>
a<
“a <> block”、[count] <> block 選択します。[count] 番
目に現れる ‘<‘ を検索し、それに対応する ‘>’ までを ‘<‘
と ‘>’ を含めて選択します。
ビジュアルモードで使われたときは、文字単位になります。
i>
i<
“inner <> block”、[count] <> block の内部を選択します。
[count] 番目に現れる ‘<‘ を検索し、それに対応する ‘>’
までを ‘<‘ と ‘>’ を除いて選択します。
ビジュアルモードで使われたときは、文字単位になります。
at“a tag block”、[count]個のタグブロックを選択します。
後方の[count]番目の対応しない “<aaa>” からそれに対応す
る “</aaa>” までを含みます。詳しくは|tag-blocks|を参照
してください。ビジュアルモードで使われたときは文字単位
になります。
it“inner tag block”、[count]個のタグブロックを選択します。
後方の[count]番目の対応しない “<aaa>” からそれに対応す
る “</aaa>” までで、”<aaa>” と “</aaa>” を除きます。詳
しくは|tag-blocks|を参照してください。ビジュアルモード
で使われたときは文字単位になります。
a}
a{
aB
“a Block”、[count] Block 選択します。”[count] [{” から
それに対応する ‘}’ までで ‘{‘ と ‘}’ を含みます(参照
|[{|)。
ビジュアルモードで使われたときは、文字単位になります。
i}
i{
iB
“inner Block”、[count] Block 選択します。”[count] [{”
からそれに対応する ‘}’ までで ‘{‘ と ‘}’ を除きます(参
照|[{|)。
ビジュアルモードで使われたときは、文字単位になります。
a”
a’
a[バッククォート]
“a quoted string”。前の引用符から次の引用符までを選択
します。オプション ‘quoteescape’ を使ってエスケープさ
れた引用符をスキップします。
1行内でだけ動作します。
カーソルを引用符の上において実行されると、行の先頭から
検索し、どの引用符のペアが文字列をなすかを調べます。
後に空白文字があると、それも含まれます。ない場合、前に
空白文字があれば含まれます。
ビジュアルモードで使われたときは文字単位になります。
ビジュアルモードでこのオブジェクトが繰り返し使われると、
別の文字列を含むように選択範囲を拡大します。現在のとこ
ろ、カウントは使われません。
i”
i’
i[バッククォート]
a”, a’ ,a[バッククォート]と同様ですが、引用符を含まず、繰り返し使わ
れたとき選択範囲を拡大しません。
特別な場合: カウントに2が指定された場合引用符が含まれ
ます。ただし a”/a’/a[バッククォート]とは違い、前後の空白文字は含まれ
ません。

拡張テキストオブジェクト

Vimテクニックバイブル ―作業効率をカイゼンする150の技より

テキストオブジェクトを定義するための機能を提供するもの

github.com/kana/vim-textobj-user

フォールディングをテキストオブジェクトとして扱う

github.com/kana/vim-textobj-fold

インデント単位でテキストオブジェクトとして扱う

github.com/kana/vim-textobj-indent

最後に検索にマッチした箇所をテキストオブジェクトとして扱う

github.com/kana/vim-textobj-lastpat

*最後のマッチを選択は最近はgnでおkみたい

Vim の textobj プラグインをまとめた

([{“‘とか全部bでいいやん!?という発想

textobj-multiblock つくった

wildfire.vim

wildfire.vimは近くのテキストオブジェクトを賢く選択してくれるプラグイン.
ノーマルモードでエンターキーを押せば、賢くテキストオブジェクトを選択してくれる.
そして、エンターキーを押すごとに、広い範囲を選択してくれる.
逆に、バックスペースを押すと、狭い範囲を選択してくれる.

gcmt/wildfire.vim
Enterキーを押すだけで近くのテキストオブジェクトを選択してくれる「wildfire.vim」

選択後のアクションいろいろ

置換

:s と押してから、

 

整形

= は基本

vim-alignta

github.com/h1mesuke/vim-alignta

Alignta.vim で Sass の整列

選択して :A としてあとはタブキーでコマンドを検索できる設定にしてると楽

入替

github.com/t9md/vim-textmanip

Hack #223: テキストを直感的に移動、複製する

Vimテクニックバイブルより

 

囲む

surrond.vim

github.com/tpope/vim-surround

surround.vimチュートリアルをためす

vim-surroundでなんでも囲う

emmet(旧zen-coding)

github.com/mattn/emmet-vim

emmet-vimの使い方

ドットインストールでemmetを学ぶ

Emmet/Zen-coding入門 (全10回)

 保存

選択範囲で :w filename

ただし、厳密には選択した行を保存する仕様(将来的に変更の可能性あり)

Vim – 選択範囲を保存/追加保存/別名保存

rails.vimならpartialも簡単に作れる

:Rextract {file_name}と入力(例えば_post.html.hamlが欲しければ、:'<,'>Rextract post)

Rails.vimでPartialを一瞬で作る方法

 

 

 

-vim
-, , , ,

執筆者:

関連記事

vimでcoffee scriptの開発環境を整える~vim-coffee-script

環境 CentOS5.8にnodebrewでnode.jsをインストールを参考にubuntu server 12.04にnode v0.6.20をインストールした 目次1 coffee scriptの …

Nerdtreeでファイル操作〜vim

Nerdtreeはvimでファイル操作ができる定番プラグイン   目次1 設定など2 ファイル操作3  grep検索4 ウガンダに寄付しました 設定など [crayon-5900a5f455 …

vim-surroundでなんでも囲う

  By: DeclanTM – CC BY 2.0 github.com/tpope/vim-surround プラグイン名がいつの間にか変わってた 目次1 使い方2 覚え方3 …

Vim8.0のコンパイル

By: Udo – CC BY 2.0 目次1 過去のVimを削除2 ソースをダウンロード3 configure4 make && make install5 done 過 …

vimでCSSを編集するときに色をプレヴュー〜colorizer&unite-webcolorname

CSSなどでその色でカラーコードをハイライトしてくれるプラグインです www.vim.org/scripts/script.php?script_id=3567 github.com/lilydjwg