2015-02-24 42 views
1

我使用以下包裹当前段落,然后取下双位:映射一个Vim命令,然后更换

nnoremap Q gqap :s///g<cr> 

但是,当我执行它,我得到的图案没有发现,这是奇怪的因为它是有效的,如果我单独做::s///g + Enter

可能是什么问题?

+0

有没有可能是因为nnoremap是它不评估gqap非递归? – Gordonium 2015-02-24 08:45:33

回答

3

映射本身看起来很好;我想问题是:s只适用于当前行,而重新格式化后,文本可能分布在多行。您可以通过解决:substitute上最后更改的范围(:'[,'])来解决此问题。由于有不一定多个空格(由\+更好的匹配也匹配多于2),你可以用/e标志取消错误:

:nnoremap Q gqap:'[,']s/ \+/ /ge<cr> 
+0

感谢它的工作。 – alexchenco 2015-02-24 10:02:14