输入键在命令模式下的含义是什么?

fot*_*nus 3 vim

到目前为止,我总是猛拉或用y2y或删除2行d2d.

我发现你也可以做y1CR(CR是enter).除了数字1出现在命令上,它实际上猛拉了行.

它也显示在底部2 lines yanked,不会发生使用y2y.

我找不到任何关于vim帮助的提及.这引出了两个问题:

  1. 除了使用执行这些命令时的额外行之外还有其他区别enter吗?
  2. enter从更广泛的意义上说,在vim中应该是什么意思?

编辑:虽然有很多的答案,没有一个人如果地址y2jy1<CR>真的等同于每一种情况下,如果是这样,为什么2 lines yanked只在底部会出现只为<CR>命令.

rom*_*inl 5

{count}<CR>意思是"走下线{count}".

这真的不难找到:看:help <CR>.

我倾向于喜欢2yy2dd; 它在语义上更清晰,更容易打字.从语法的角度来看,y2y听起来很奇怪:"猛拉两次",而2yy听起来几乎像普通(yoda)英语:"两次猛拉".

  • 你有证据证明'2yy'更容易打字吗?我也对OP的'y2y`感到惊讶.但是,如果您分析它,您会发现它有机会更快."2"键击可以潜入两个"y"之间的恢复时间.基本上,`y2y`可以与'yy'完全一样长,而'2yy`则不能. (2认同)

Kaz*_*Kaz 5

Vi命令是计数,动作和动作的组合.(后两者中至少有一个必须存在:动作或动作.否则你有一个挥之不去的计数,等待更多的输入.)

y1CR表示计数为1,运动是"转到下一行的开头",动作是"猛拉"."转到下一行的开头(只做一次),然后划出动作跨越的行".当然,数为1是多余的.

关于运动和行动的结合,你可能已经注意到它们没有按字面意思组合; 某些组合遵循特殊规则.例如,w动作转到下一个单词的开头,并且d动作(删除)以dw这样的方式组合,即光标下的单词和下一个单词的正上方都被删除.但是,cw组合(更改单词)仅删除单词,直到后面的空白,留下空格.在这种情况下,c不是采取精确的运动,w而是采取经常更有意义的调整运动c.

我无法重现y2j不打印拉线数量的行为.在Ubuntu上的Vim 7.3, ,,3yy 和所有报告(如果存在至少3行).如果少于3行被抽出,则所有这些命令都是静默的.(例如,它们被执行太接近缓冲器的最后一行,其中仅两个或更少的线保持,或重复计数减小到,,和分别).y3yy2CRy2j3 lines yanked2yyy2yy1CRy1j

Vim似乎有三行阈值来报告此状态消息.这可能在版本之间发生了变化.