在Vim中,如何删除单词的后缀?

在Vim中,如何删除单词的后缀?,vim,keyboard-shortcuts,Vim,Keyboard Shortcuts,在vim中,在正常模式下,如果光标位于单词中,而不是最后一个字母中,de从光标位置删除单词后缀。如果光标位于最后一个字母上,x也会这样做,而de会跳到下一个单词的末尾 您会使用什么命令在这两种情况下都有效,最后一个字母是否有效 其目的是将命令包含在宏中。如果单词分隔符是空格,则dt将起作用t将匹配所有字符,直到指定的字符。尝试vwged而不是de,如果需要,请定义如下映射 喜欢 :nnoremap de vwged 它似乎正是你想要的 :s/\w\+// 这将在行的开头进行替换。要在光标位置

在vim中,在正常模式下,如果光标位于单词中,而不是最后一个字母中,
de
从光标位置删除单词后缀。如果光标位于最后一个字母上,
x
也会这样做,而
de
会跳到下一个单词的末尾

您会使用什么命令在这两种情况下都有效,最后一个字母是否有效


其目的是将命令包含在宏中。

如果单词分隔符是空格,则
dt
将起作用
t
将匹配所有字符,直到指定的字符。

尝试
vwged
而不是
de
,如果需要,请定义如下映射 喜欢

:nnoremap de vwged
它似乎正是你想要的

:s/\w\+//
这将在行的开头进行替换。
要在光标位置进行替换,必须在vimrc中添加一些行。按照这里的说明操作


您也可以尝试
d/\>
,它可以翻译为删除到下一个结束词边界。

一些有用的注释:dw-删除他们所谓的“小”字。与“settings.config”类似,如果您在“s”上,
dw
将删除
之前的所有内容要删除整个字符串,请使用
dw
(删除“大”字)来概括此解决方案:
dtC
,其中
C
是要删除的单词的最后一个字符旁边的字符。但是如果您的单词后跟逗号或分号(或任何其他非单词的字符),该怎么办?你需要一个跳转到下一个单词的方法boundary@Nathan是的,要使用此解决方案,您需要查找单词末尾旁边的字符,并在
dt
之后键入它(例如,
dt;
)。为了摆脱这种需要,请尝试我答案中的映射。这种行为不取决于单词的长度,而是取决于光标的位置。如果光标位于单词的最后一个字符处,
e
motion也会跳到下一个单词的末尾。没错,再次感谢。问题已更正。已回答,但
cw
也可能对您有用。它做你所描述的,但也让你进入编辑模式。谢谢@ElYobo,
cw
更容易记住
vwged
就是我要找的。谢谢
:s/\w\+//