我最近發現了一個替代命令vim,其中作者將/
替換爲!
,如下所示::%s!foo!bar
,我不明白與傳統:%s/foo/bar
的區別。Vim什麼是替代命令中使用感嘆號
我搜索了一些關於這種語法的文檔,但是我沒有找到任何相關的東西,所以我試着自己試驗,但我無法弄清楚兩種形式之間的區別。以下是我發現:
- 不能在同一個命令混合
/
和!
。例如::%s/foo!bar
將會失敗。 - 符號
!
可用於包含/
的模式。例如,如果我想在我的文件中將</
替換爲%
,我可以執行:%s!</!%!g
而不是:%s/<\//%/g
:我不需要在第一個命令中轉義/
,但如果這是唯一使用!
,我會感到驚訝。 - 一些正則表達式似乎與
/
失敗,並與!
propertyly工作,但由於我遠不是一個正則表達式的主人,我不確定這一點。
所以我的問題是:是什麼在VIM替代/
和!
之間的區別時,我應該使用一個,而不是其他?
此問題[也發佈在vi.stackexchange](http://vi.stackexchange.com/q/3156/51)。 – Carpetsmoker
確實我犯了一個錯誤的雙重貼子,我在vim上標記了它,知道我該怎麼做。 – statox