到目前为止,我总是猛拉或用y2y或删除2行d2d.
我发现你也可以做y1CR(CR是enter).除了数字1出现在命令上,它实际上猛拉了两行.
它也显示在底部2 lines yanked,不会发生使用y2y.
我找不到任何关于vim帮助的提及.这引出了两个问题:
编辑:虽然有很多的答案,没有一个人如果地址y2j和y1<CR>真的等同于每一种情况下,如果是这样,为什么2 lines yanked只在底部会出现只为<CR>命令.
{count}<CR>意思是"走下线{count}".
这真的不难找到:看:help <CR>.
我倾向于喜欢2yy或2dd; 它在语义上更清晰,更容易打字.从语法的角度来看,y2y听起来很奇怪:"猛拉两次",而2yy听起来几乎像普通(yoda)英语:"两次猛拉".
Vi命令是计数,动作和动作的组合.(后两者中至少有一个必须存在:动作或动作.否则你有一个挥之不去的计数,等待更多的输入.)
y1CR表示计数为1,运动是"转到下一行的开头",动作是"猛拉"."转到下一行的开头(只做一次),然后划出动作跨越的行".当然,数为1是多余的.
关于运动和行动的结合,你可能已经注意到它们没有按字面意思组合; 某些组合遵循特殊规则.例如,
w动作转到下一个单词的开头,并且d动作(删除)以dw这样的方式组合,即光标下的单词和下一个单词的正上方都被删除.但是,cw组合(更改单词)仅删除单词,直到后面的空白,留下空格.在这种情况下,c不是采取精确的运动,w而是采取经常更有意义的调整运动c.
我无法重现y2j不打印拉线数量的行为.在Ubuntu上的Vim 7.3, ,,3yy 和所有报告(如果存在至少3行).如果少于3行被抽出,则所有这些命令都是静默的.(例如,它们被执行太接近缓冲器的最后一行,其中仅两个或更少的线保持,或重复计数减小到,,和分别).y3yy2CRy2j3 lines yanked2yyy2yy1CRy1j
Vim似乎有三行阈值来报告此状态消息.这可能在版本之间发生了变化.