1
我使用以下包裹當前段落,然後取下雙位:映射一個Vim命令,然後更換
nnoremap Q gqap :s///g<cr>
但是,當我執行它,我得到的圖案沒有發現,這是奇怪的因爲它是有效的,如果我單獨做::s///g
+ Enter
可能是什麼問題?
我使用以下包裹當前段落,然後取下雙位:映射一個Vim命令,然後更換
nnoremap Q gqap :s///g<cr>
但是,當我執行它,我得到的圖案沒有發現,這是奇怪的因爲它是有效的,如果我單獨做::s///g
+ Enter
可能是什麼問題?
映射本身看起來很好;我想問題是:s
只適用於當前行,而重新格式化後,文本可能分佈在多行。您可以通過解決:substitute
上最後更改的範圍(:'[,']
)來解決此問題。由於有不一定多個空格(由\+
更好的匹配也匹配多於2),你可以用/e
標誌取消錯誤:
:nnoremap Q gqap:'[,']s/ \+/ /ge<cr>
感謝它的工作。 – alexchenco 2015-02-24 10:02:14
有沒有可能是因爲nnoremap是它不評估gqap非遞歸? – Gordonium 2015-02-24 08:45:33