注意:这不是“ d3fg”命令如何工作的重复项?请在投票关闭前阅读它!
我寻求小删除像大删除一样陷入僵局。我遇到的问题是我不知道如何重新映射类似的命令d3d。实际上,我什至无法理解它们的工作原理,也无法在Vim的帮助下找到它们的任何提法。*
d3j很简单:将d
操作员应用于3j
运动,
3dd也很简单:它dd
以3的“ count” 运行命令。
d3d 看起来应该很简单,它将d
运算符应用于...,但是什么是3d
?这不是一个议案。如果您3d自己输入,Vim会将其视为一个运算符,然后是一个运算符,并耐心等待进一步的输入。
而且您不能将运算符应用于其他运算符。dd在帮助中并未描述为两个运算符的序列。这是一个单独的两键命令。(请参阅dc,它什么都不做。)
对于需要两次击键的命令,计数的位置似乎也不是灵活的:2gj将光标向下移动两行屏幕,但是g2j完全丢弃前两次按键并向下移动一行光标。
那么它是怎样工作的?这只是Vim内部代码中的一种特殊情况吗?有什么办法可以创建d[count]d
映射?
编辑:这是一个文本对象吗?:h text-objects
不包括在“文本对象选择命令”列表中,但随后它确实包含DD在“从小分组,以大物”删除列表。并d2aw确实删除了光标下的单词和随后的单词。另一方面,c2d什么也不做。
*我确定必须提到它们,但是我找不到。我已经阅读了:help deleting
,:help motion.txt
并尝试:helpgrep dNd
了从1到9的所有N值。
dd
与相同d_
。_
将光标移到第([count]
-1)行的第一个非空白处,但它是按行的,因此与运算符配对时,它会在整行上进行操作。因此,在两个d
s 之间可以出现一个计数是有意义的。
d
的确认。因此与相同d3<CR>
。y3y
并且c3c
也能以相同的方式工作...尽管在Vim:help,vi(1),nvi(1)或POSIX规范中,我都找不到关于此的任何文档...它在vi
和nvi
btw 中的行为相同。