Quantcast
Channel: Vimタグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 5608

【vimめも】 4. テキストオブジェクトについて

$
0
0

テキストオブジェクトってなに?

文字列を1つのまとまりとして扱うための仕組みで
オペレータと組み合わせることで、簡単に範囲を選択して操作を行える

  • メソッドの引数の中身だけ変えたい時
  • ハッシュのブレスごとコピーしたい時
  • 文字列の中身(ダブルクォートの中)だけ削除したい時
  • カーソルの単語だけを選択したい時

などなど

ヘルプの内容

helpにて調べると、こんな説明がされてる

次のものはビジュアルモードかオペレータコマンドの後でのみ使うことができる一連の コマンドを示しています。
"a" で始まるコマンドは "a" (1つの) まとまりをホワイトスペースを含めて選択します。
"i" で始まるコマンドはまとまりの "inner" (内部) をホワイトスペースを含まずに選択するか、もしくはホワイトスペースのみを選択します。
ですので、"inner" コマンドは常に "a" コマンドより少なくテキストを選択する ことになります。

簡単にいうと、
内側がいいときはiを、外側も含めたいときはaを使いなさい
ということ(?)

使い方

オペレータコマンド + (回数指定) + 内部/外部指定 + テキストオブジェクトの種類の指定

オペレータのおさらい

オペレータ意味
v文字の選択(ビジュアルモード)
y文字のヤンク
d文字のヤンク+削除
c文字のヤンク+削除+挿入モード
gu文字の小文字変換
gU文字の大文字変換
~文字の小文字大文字の入れ替え

テキストオブジェクトの範囲と種類

iのもの意味aのもの意味
iw単語aw単語(空白含む)
i[ or i][ ]の中a[ or a][ ]も含めたブロック
i( or i)( )の中a( or a)( )も含めたブロック
i{ or i}{ }の中a{ or a}{ }も含めたブロック
i< or i>< >の中a< or a>< >も含めたブロック
itタグの中atタグを含めたブロック
i”“の中a”“も含めた文字列
i''の中a''も含めた文字列
i``の中a``も含めた文字列

使い方例

メソッドの引数の中身だけ変えたい時

deffoo(xxx=false)end

括弧の中にカーソルがある状態でci)で中身を削除して挿入モードへ


ハッシュのブレスごとコピーしたい時

{:xxx=>3,:yyy=>5}

括弧の中にカーソルがある状態でya}でハッシュをヤンク


文字列の中身(ダブルクォートの中)だけ削除したい時

error="エラーが発生しました"

括弧の中にカーソルがある状態でda"で文字列を削除


カーソルの単語だけを選択したい時

messages.each_with_indexdo|_,i|p"#{i} : #{_}"end

each_with_indexのどこかにカーソルがある状態でviweach_with_indexを選択した状態でビジュアルモード


Viewing all articles
Browse latest Browse all 5608

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>