学习Vim:消除单词之间空格的最佳方法

学习Vim:消除单词之间空格的最佳方法,vim,command,keyboard-shortcuts,Vim,Command,Keyboard Shortcuts,我是一名经验丰富的Windows平台开发人员,我正在努力自学如何使用Vim。我非常擅长正则表达式,并且理解如何使用Vim的原理。然而,我有一个具体的问题,尽管我有一个解决方案,但我觉得应该有一个更好的解决方案 我有一个文件,其中包含一行类似于以下内容: CODE<tab><tab>Lorem ipsum dolor sit amet 我目前的解决方案是使用以下按键顺序: w d?\s\+ 这是可行的,但在删除之前先删除我想删除的内容,感觉不合逻辑。我觉得我应该移动到co

我是一名经验丰富的Windows平台开发人员,我正在努力自学如何使用Vim。我非常擅长正则表达式,并且理解如何使用Vim的原理。然而,我有一个具体的问题,尽管我有一个解决方案,但我觉得应该有一个更好的解决方案

我有一个文件,其中包含一行类似于以下内容:

CODE<tab><tab>Lorem ipsum dolor sit amet
我目前的解决方案是使用以下按键顺序:

w d?\s\+

这是可行的,但在删除之前先删除我想删除的内容,感觉不合逻辑。我觉得我应该移动到
code
的末尾并向前删除。我意识到这可能只是一个我不知道的Vim习语。我也可能完全错过了Vim知识的一个关键部分

实现我的目标的最佳方式是什么?

eldw会做到的

  • e-向前移动到单词的末尾
  • l-向右移动1个字符
  • dw-删除所有空格

如果光标位于某个空白区域的中间,DIW将删除光标左边和右边的空白。(如果它在某个词的中间,它会删除这个词。)< /P> < P>一些替代方案:

:s/\s\+//
e xx
elxx
eldtL
f<tab>xx
eldw
:s/\s\+//
e xx
埃尔克斯
埃尔特尔
fxx
eldw

谢谢你,马特。我本来以为这是开始,但我被“l”将光标移动到制表位的末尾,而不是紧跟在
code
之后的位置这一事实所困扰。现在我试了一下,这有点道理。我想这突出了我的想法:学习Vim不仅仅是命令,还需要学习一些习惯用法。@Damian:当然,整个vi/Vim都有很好的规律性,我自己仍在掌握这些规律:-)经过更多的实验,我想我要找的关键序列是
elcw
。这使我处于插入模式,准备添加替换文本。令人惊叹的!再次感谢。我想这会让你获得最好的分数,我发现这是磨练你的l33t Vim技能的好方法。谢谢你的建议,罗斯。我想在snipet中使用这个序列,所以你的一两条建议不起作用,因为它们考虑了我文件中每行的确切布局和内容。谢谢你给我指点了一些我以前不知道的东西。
:s/\s\+//
e xx
elxx
eldtL
f<tab>xx
eldw