2015-02-24 54 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