VIM:如何在正常模式下删除行尾的3个字?
最短的套餐是什么 另外,我通常做ACtrl+wCtrl+wCtrl+wEsc。VIM:如何在正常模式下删除行尾的3个字?,vim,Vim,最短的套餐是什么 另外,我通常做ACtrl+wCtrl+wCtrl+wEsc。 换句话说,我必须跳转到插入模式 p.p.S.d3b不起作用。$3bD 或 30亿美元 …如果您还想删除尾随空格。到行尾,返回3个单词,然后删除到行尾:$3b D $3gelD 或 转到行尾,删除后面的3个单词,然后删除多余的字符:$3db x此命令序列 $3bD 这是目前我能想到的最短的方法,但它留下了一个丑陋的尾随空间 $3gelD 是另一种消除尾随空格的方法 $3gelD 你也可以跳出框框思考,用空格代替
换句话说,我必须跳转到插入模式 p.p.S.d3b不起作用。$3bD 或 30亿美元
…如果您还想删除尾随空格。到行尾,返回3个单词,然后删除到行尾:$3b D
$3gelD
或
转到行尾,删除后面的3个单词,然后删除多余的字符:$3db x此命令序列
$3bD
这是目前我能想到的最短的方法,但它留下了一个丑陋的尾随空间
$3gelD
是另一种消除尾随空格的方法
$3gelD
你也可以跳出框框思考,用空格代替文字:
$3F D
30亿美元去哪
- 美元到一行的末尾
- 3.下一个是哪三个
- b倒转三个[一个不带修饰语]字
- D删除光标下的字符,直到行尾
:norm! $3bD
正如其他人提到的,
$3bD
是最短的,$3bDx
将足以删除剩余的空白,假设它正好是一个空格或制表符
为了解释所有空白,可以使用$3gelD
。此选项的好处是在大多数情况下都能正确清理,但当一行正好包含3个单词时,它会失败,因为3ge
运动会跳回到前一行
另一种方法是基于daw
。由于3daw
向前动作,因此必须使用$daw..
或$3b3daw
。对于3个单词,$daw..
更短,可能更理想,但$3b3daw
更像Vim风格,可以轻松扩展到更多单词
b
、ge
和w
可以替换为b
、ge
和w
,以删除单词而不是单词。删除N个单词的宏?如果您处于要删除的位置,只需使用d$
删除行尾的所有内容。通常我在行的开头。这个问题是一个很好的例子,说明Vim中几乎所有内容都是上下文的。做我们想做的事情有很多种方法,正确的方法可能因情况而异。同样的逻辑也适用于“我应该使用宏还是应该使用n.
还是应该使用:g
?”。最后一个逻辑可能不同,因为它可能更接近于使用单词边界而不是单词边界(这ge
和b
使用)。它修复了后面的空白问题,但是,如果单词之间用制表符或多个空格分隔,则@romainl$3F D
将不起作用<代码>$3bDx稍微好一点,但您的另一个建议是$3gelD
<代码>$3b3daw的作用相同,但更长<代码>$daw..是一个有趣的替代方案。没有特定的用例,我们只能进行假设<代码>$3F D假定单词之间用空格分隔$d3b
,$3bD
和变体都是一样的,基于OP尝试使用d3b
失败,并且假设他知道我的解决方案中的B
@NikitaKouevda,我同意$3gelD
可能是最好的。不过,我更喜欢你的$daw..
。想把它作为一个答案吗?不幸的是,$daw..
只有在不使用virtualedit
选项的情况下才有效。使用virtualedit将其设置为all
或onemore
,另一种选择是$caw..
;在这种情况下,$3bDx
也会失败。