如何删除,包括当前字符?
假设我输入了“abcdefg”,并且光标在最后。我想删除回到c,这样我只剩下“abc”了。如何删除,包括当前字符?
是否有像d
这样的命令包含当前字符?我知道我可以做dTcx
,但x
感觉像是一个解决办法,我想有一个更好的解决方案。
不是。向后运动总是从当前字符的左侧开始,对于c
,y
和d
这是合乎逻辑但也令人不安的。
唯一的“干净”的解决方案,我能想到的任何暗示移动到焦炭c
第一后再做向前删除:
Tcde
或使用可视化模式:
vTcd
v3hd
但,考虑到你的样品,并假设你正在进入正常模式只是为了纠正,整个事情听起来对我来说非常浪费。
什么停留在插入模式和简单地做←←←←?
使用d?c
这将启动d
模式,搜索回'c',然后删除到您的光标位置。
编辑:不,不包括当前位置...
必须是'd?d' – 2013-04-04 06:46:21
是的,好点,保持'c'。 – Cometsong 2013-04-04 06:51:41
我可能会误解你的要求,但并3hd$
做呢?
是的,它的确如此。或'Fdd $'。但是当我还没有结束时,我想工作,这也感觉就像一个解决方法。基本上,我问是否有包含当前角色的动作/删除。 – Andreas 2013-04-04 06:51:09
试试这个:
TcD
这将离开abc
您例如......嗯,如果abcdefg
是该行的最后一个字。
如果不是在该行的最后一个字,你可以这样做:
ldTc
或打高尔夫球,做它3按键行程内:
3Xx or l4X
见this answer到类似的问题:有一个设置可以超出行尾
来自文档:
虚拟编辑意味着光标可以放置在没有实际字符的位置 。这可能是一个标签的一半或超出该行的末尾 。用于在可视模式下选择矩形和编辑表格。 “onemore”不一样,它只允许在行的最后一个字符后面移动光标 。这使得一些命令更一致。以前,如果该行为空,则光标始终在行 的末尾。但它远不是Vi兼容的。它也可能会破坏一些插件或Vim脚本。例如,因为| l |可以在最后一个字符后移动光标 。小心使用! 使用
$
命令将移至行中的最后一个字符,而不是经过它的 。这实际上可能会将光标移动到左侧!g$
命令将移动到屏幕行的末尾。 将“all”与“onemore”结合起来没有任何意义,但是您不会为此发出警告。
总之,你可以尝试:set virtualedit=onemore
,看看你的环境是否稳定与否。
我用最愚蠢的方式做到这一点:D – 2013-04-04 06:43:19
@MostafaShahverdy'xxxx'?或'ddOabc'? – Andreas 2013-04-04 06:43:54
Humm:D并且有时使用'c'中的Del! – 2013-04-04 06:44:47