VIM的全局替換

昨天用到全局替換,網上查了一個命令

:s/old_string/new_string/g

實際中卻沒有達到效果,原來是要用

:%s/old_string/new_string/g


解釋下這個命令,s就是substitute,替換的意思,命令模式爲

:[range]s[ubstitute]/{pattern}/{string}/[flags] [count]

可以在vim中查看幫助手冊,具體做法是在命令行模式下輸入 h substitue就可以看到了。

先解釋下爲什麼要加%號吧。

沒有%號,只有g,只是在一行內替換,就是old_string所在的一行所有的替換,相當於水平的一個全局替換,而%表示縱向的一個全局替換,所以兩個都有才是我需要的整篇文檔的替換。以前總是覺得這個命令太長,好複雜,理清楚之後就清晰多了。其實想想設計這些程序的人也不會想用一個複雜的命令來操作的。所以理解纔是記憶的王道。


寫幾個可能還要經常用到的替換命令吧。

就是最後一個flag,個人覺得會比較常用,n表示一個統計,不會去真正替換,會顯示有幾個;把g改爲gc則會在每次替換時都讓你做個選擇,具體選擇看提示就可以了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章