删除“复合”词的最简单方法是?


20

如果不是“ composite”,则表示歉意。我的意思是:

Hi, I-am-a-composite-word and we are not

我只想删除复合词。在命令模式下,如果将光标移至I,然后重复dw几次,或者键入dw一次更好,然后再按几次.,就可以解决问题。但是,由于种种原因,我发现自己白天经常这样做,因此我想知道是否有更简单的方法。

PS我不会认为该命令d9w是一个更简单的方法。计数长单词和破折号不是我“简单”的想法。

Answers:


33

您所说的复合词实际上是一个WORD(反对一个词)。阅读:h word:h WORD应有所帮助:

                            *word*
A word consists of a sequence of letters, digits and underscores, or a
sequence of other non-blank characters, separated with white space (spaces,
tabs, <EOL>).  This can be changed with the 'iskeyword' option.  An empty line
is also considered to be a word.
                            *WORD*
A WORD consists of a sequence of non-blank characters, separated with white
space.  An empty line is also considered to be a WORD.

您在这里寻找的是dW当您在IdiW在世界上任何地方时。

也许将来您还需要阅读:h 'iskeyword'


1
感谢您的回答:它有效。定义的中肯:A WORD consists of a sequence of non-blank characters, separated with white spaceSeparated with white space表示单词被其他单词或带有空格的单词分隔,对吗?
DeltaIV

2
@DeltaIV in-this-sentence there are four"WORDs是的in-this-sentence,四个字分别是therearefour"WORDs。例如,当您使用wWbB动作时,很容易看到。请注意,空格可以是“常规”空格或制表符。
statox

1
如果以“您在这里寻找的是dW ..”开头,而不是强迫读者进入中间段落以找到解决方案,则此答案将立即更有用。
Mark Meuer

9

另一个更通用的解决方案是使用删除最多空白字符dt (在后面有一个空格t),这表示“删除为[字符]。这对于dt:类似的东西也经常有用。


怎么dt: 办?
DeltaIV

1
当我发布相同的答案时,我了解到您可以<code>dt </code>在末尾使用空格。
BurnsBA '18

2
@DeltaIV实际上,您真正需要的是阅读:h motion.txt和使用vimtutor,这将极大地帮助您了解Vim的基础知识
statox

@statox我曾经在VIM上很熟练... 10年前:-) vimtutor听起来很有趣。我不确定它是否已安装在远程服务器上(看起来甚至没有man安装该实用程序)。但是,我将检查:如果它与vim软件包一起自动安装,那么我将很有可能会使用它。
DeltaIV '18年

1
@BurnsBA谢谢,这对于此站点确实有用。顺便说一句。您可以编辑其他人的帖子,如果您的编辑通过某些同行评审过程获得好评,甚至可以获得+2的声誉。但是这样,我也学到了新的东西:-)。
allo

4

如果您想继续使用dw等功能,并且还希望通过双击一个单词来使用它,则可以添加

set iskeyword+=-

到您的.vimrc,这会添加-为文字字符。

例:

双击ab-cd视觉突出显示中的任何字符ab-cd


我可以切换到dW,但您的解决方案也很酷,因为我认为它也会影响视觉模式。我的意思是,通过修改iskeyword,然后双击,d我应该能够删除ab-cd。对?
DeltaIV

或者,也许我应该使用切换到可视模式v,而不是双击。对?
DeltaIV '18年

1
@DeltaIV通过修改iskeyword,可以对单词对象使用任何方法(包括iw或aw,比使用鼠标或可视模式都简单得多)
D. Ben Knoble

4

不要忘记f(查找)和t(执行)命令。我可能只是dt df (请注意最后的空格)。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.