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

时间:2011-02-06 23:54:37

标签: vim command keyboard-shortcuts

我是Windows平台上经验丰富的开发人员,我正在尝试自学如何使用Vim。我对正则表达式非常了解并理解如何使用Vim的原理。但是,我有一个特定的问题,虽然我有一个解决方案,但感觉好像应该有更好的解决方案。

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

CODE<tab><tab>Lorem ipsum dolor sit amet

<tab><space>之间可能存在可变数量的CODELorem个字符。假设光标在正常模式下超过CODE的'C',我想要做的是找到一个能产生以下输出的键组合,并将光标留在{的'E'之间{1}}并且在插入模式下他是'{1}}。

CODE

我的解决方案是使用以下密钥序列:

w d \ s \ + &lt; return&gt;

这样可行,但在我删除它之前经过我要删除的东西感觉不合逻辑。我觉得我应该移到Lorem的末尾并删除前进。我意识到这可能只是一个我不知道的Vim成语。我也完全错过了Vim知识的关键部分。

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

2 个答案:

答案 0 :(得分:19)

e l d w 会这样做。

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

如果光标位于某个空格的中间, d i w 将删除光标左右两侧的空格。 (如果它在一个单词的中间位置,它将删除该单词。)

答案 1 :(得分:4)

一些替代方案:

:s/\s\+//
e xx
elxx
eldtL
f<tab>xx
eldw