我是Windows平台上经验丰富的开发人员,我正在尝试自学如何使用Vim。我对正则表达式非常了解并理解如何使用Vim的原理。但是,我有一个特定的问题,虽然我有一个解决方案,但感觉好像应该有更好的解决方案。
我有一个文件,其中包含类似于以下内容的行:
CODE<tab><tab>Lorem ipsum dolor sit amet
<tab>
和<space>
之间可能存在可变数量的CODE
或Lorem
个字符。假设光标在正常模式下超过CODE
的'C',我想要做的是找到一个能产生以下输出的键组合,并将光标留在{的'E'之间{1}}并且在插入模式下他是'{1}}。
CODE
我的解决方案是使用以下密钥序列:
w d ? \ s \ + &lt; return&gt;
这样可行,但在我删除它之前经过我要删除的东西感觉不合逻辑。我觉得我应该移到Lorem
的末尾并删除前进。我意识到这可能只是一个我不知道的Vim成语。我也完全错过了Vim知识的关键部分。
实现目标的最佳方式是什么?
答案 0 :(得分:19)
e l d w 会这样做。
如果光标位于某个空格的中间, d i w 将删除光标左右两侧的空格。 (如果它在一个单词的中间位置,它将删除该单词。)
答案 1 :(得分:4)
一些替代方案:
:s/\s\+//
e xx
elxx
eldtL
f<tab>xx
eldw