Answers:
“ dap”实际上并不删除所有内容。例如,尝试将其放入缓冲区:
1
1
2
2
3
3
然后将光标放在“ 2”上,然后键入“ dap”。它将离开“ 1”和“ 3”。
这是因为“ dap”删除了一个段落。实际上,这实际上是个助记符:“(D)删除(A)(P)段”。您可以在下面的帮助中看到它: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
删除右侧的单词。我认为原始答案的“大部分……”可能是我们从这些对等方面获得的最好结果。