回答:
「dap」は実際にはすべてを削除するわけではありません。たとえば、これをバッファに入れてみてください:
1
1
2
2
3
3
次に、カーソルを「2」のいずれかに置き、「dap」と入力します。「1」と「3」のままにします。
これは、「dap」が段落を削除するためです。実際、それは実際にはニーモニックです:「(D)elete(A)(P)aragraph」。以下のヘルプで確認できます:h ap
。
*v_ap* *ap*
ap "a paragraph", select [count] paragraphs (see
|paragraph|).
Exception: a blank line (only containing white space)
is also a paragraph boundary.
When used in Visual mode it is made linewise.
これは「テキストオブジェクト」と呼ばれます。これらについては、以下で読むことができます:h text-objects
。または、テキストオブジェクトに関するこのすばらしい記事を読むことができます。
いずれにせよ、テキストオブジェクトの基本的な考え方は、オブジェクトの境界を定義し、オブジェクトの真ん中であってもオブジェクト全体にコマンドを適用することです。たとえばdw
、単語を削除するために使用できることを知っていると確信しています。しかし、このシナリオにいる場合はどうでしょうか?
Hello world
Cursor: ^
を入力するとdw
、まだwo
左があります。を入力diw
すると、単語の内部が削除されるため、ほとんどの場合はを入力するのと同じbdw
です。
この種のことを自分で調べるにはどうすればよいですか?
基本的な考えがありました!ヘルプを確認することは常に良いスタートです。この場合、それがd
演算子であることに気付くことができたので、本当に探していたヘルプは、この場合の演算子への引数でしたap
。
diw
とbde
まだかなり同じではありません。もしあなたのカーソルの単語の先頭に。同様に、カーソルが単語間のスペースにある場合bdw
、左側daw
の単語は削除されますが、右側の単語は削除されます。元の答えの「大部分」は、おそらくこれらの同等性に関して得られる最高のものだと思います。