我使用了令人敬畏的https://github.com/tpope/vim-surround插件用圆括号括住单词,例如我经常使用:viws<space><space>
用空格包围单词。在vim中删除周围的空白
我所缺少的是与此相反的,即删除单词周围的空格。
对我来说,最常见的用途是函数参数,如 foo(bar)vs foo(bar),具体取决于代码风格。
有没有人知道一个很好的方法来做到这一点?
我使用了令人敬畏的https://github.com/tpope/vim-surround插件用圆括号括住单词,例如我经常使用:viws<space><space>
用空格包围单词。在vim中删除周围的空白
我所缺少的是与此相反的,即删除单词周围的空格。
对我来说,最常见的用途是函数参数,如 foo(bar)vs foo(bar),具体取决于代码风格。
有没有人知道一个很好的方法来做到这一点?
注意:此解决方案需要问题中引用的环绕声插件。
为了您的具体情况,你可以做到以下几点:
cs()
这改变foo(bar)
到foo(bar)
,但是,它是不是你的问题的通用解决方案。
种优雅..怪异但优雅:) – 2012-02-28 11:56:04
这是应该做什么?它对我没有任何帮助 – puk 2012-02-28 12:14:41
如果您没有OP中提到的环绕声插件,那么它不会做预期的事情。对于环绕声,'csXY'表示“用周围字符Y改变周围字符X”,'('被定义为“带有填充空间的周围圆括号”,而'''被定义为“没有填充的圆括号空间”。 – 2012-02-28 12:23:52
我经常高效地拖延搜索vim插件,当我可以为此定义映射时。
nnoremap <leader>dd F<space>xf<space>x
EDIT更多信息
<leader>
用于用户定义的映射公共密钥(,
是一个很好的)
dd
组合使用(任何其他助记符一个就足够了)
F<space>x
搜索倒着一空,然后将其删除
f<space>x
正向搜索空间,然后将其删除
哈哈......是啊...... :) – 2012-02-28 11:57:47
其实,对我来说完美的解决方案是由@puk提供的映射,但使用钥匙@sarnold在第一个地方(如果它实现了这一点,可以期望从环绕插件期望的)。
这就是:
nnoremap ds<space> F<space>xf<space>x
是否'DS'工作? README提供了'ds''作为一个机制来删除一个例子中的分隔符。 –
sarnold
2012-02-28 10:53:01
它不幸。虽然好的观察。 – 2012-02-28 11:05:11
我发现有趣的是,您发现'viws'命令是比所有替代方案更简单的解决方案,包括使用箭头键和退格键! –
puk
2012-02-28 11:36:51