![vim で複数の内部単語をヤンクする](https://rvso.com/image/1395304/vim%20%E3%81%A7%E8%A4%87%E6%95%B0%E3%81%AE%E5%86%85%E9%83%A8%E5%8D%98%E8%AA%9E%E3%82%92%E3%83%A4%E3%83%B3%E3%82%AF%E3%81%99%E3%82%8B.png)
vimの内側と外側の単語テキストオブジェクトは、カウントと組み合わせると異なる動作をします。テキスト(カーソルは単語内にありますfirst
)が与えられます。
first second third fourth
どちらもy2iw
最初の単語をレジスタに格納し、y3iw
/ はy4iw
最初の 2 つの単語などに格納します。したがって、少なくともy7iw
4 つの (内側の) 単語すべてをヤンクする必要があります。外側の単語の場合、指定されたカウントはヤンクされた単語の数に対応します。
iw
この場合、なぜ 2 つのオブジェクトが 1 つの単語に対応するのでしょうか。また、iw
を と同様に動作させることはできますかaw
。
答え1
5 個程度のスペースを入力して、次のように実行します。5viw
個程度のスペースiw
も\s+
別の「オブジェクト」として扱われるため、選択されます。
この例では、7 つのiw
オブジェクトがあります。
yiw
first
名前のないレジスターにヤンクします。y2iw
first
名前のないレジスタに(末尾のスペースとともに)ヤンクします。y3iw
first second
名前のないレジスタに(スペースを使用して)ヤンクします。y4iw
first second
名前のないレジスタに(スペース付きで)ヤンクします。- 等々…
一方aw
、任意の数のスペース「オブジェクト」として。
この例では、4 つのaw
オブジェクトがあります。
yaw
first
名前のないレジスタに(末尾のスペースとともに)ヤンクします。y2aw
first second
名前のないレジスタに(末尾のスペースとともに)ヤンクします。y3aw
first second third
名前のないレジスタに(末尾のスペースとともに)ヤンクします。y4aw
first second third fourth
名前のないレジスターにヤンクします。
iw
のように動作させたい場合は、aw
を使用してくださいaw
。