映射Vim命令后跟替换

时间:2015-02-24 08:37:05

标签: vim

我正在使用以下包装当前段落,然后删除双空格:

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

但是当我执行它时,我找不到模式,这很奇怪,因为如果我单独执行它会起作用::s/ / /g + Enter

可能是什么问题?

1 个答案:

答案 0 :(得分:3)

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

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