今天我開始使用vim。我對:g
和:%s
命令感到困惑。那麼,:g
或:%s
命令有什麼區別?有什麼區別:g和:%s命令在vim中
回答
:g
上匹配正則表達式的所有行執行命令:
:g/LinesThatMatchThisRegex/ExecuteThisCommand
實施例:
:g/hello/d
這將刪除(d
)包含你好所有行。
在另一方面,:%s
只是執行搜索(在正則表達式),本文件替換:
:%s/hello/world/g
(該g
也意味着全球化,所以它會取代所有的人,而不僅僅是一個每行,如果要手動確認每個替換項,也可以使用c
標誌(:%s/hello/world/gc
)。
這將替換所有出現的hello
與world
。
:g
和:%s
命令都支持正則表達式。
s
命令意味着substitute
和%
意味着整個緩衝區。所以%s
意味着整個緩衝區的替代。您也可以輸入一行範圍:
:10,15s/hello/world/g
這將執行前面僅在第10行至第15行(含)的搜索和替換。
':g'只能在當前緩衝區中執行,與':s'相同。它們唯一的區別在於默認的範圍:':s'和':.s'相同,':g'是':%g'。因此':%s/pat/subs'和':%g/pat/cmd'(或':g/...')將作用於緩衝區中與pat匹配的所有行,而':.s /如果匹配pat,pat/subs'(或':s/...')和':.g/pat/cmd'將在當前行上起作用。 – mMontu 2014-09-05 12:45:32
它們是不同的。
:g
可以執行命令匹配的行。 :s
是這些命令之一。也就是說,你可以結合:g and s
:%s
只是搜索和替換整個緩衝區,即使它可以做一些其他的事情表達過,但它並不像:g
那麼簡單。
例如爲:
:g/foo/s/bar/blah/g
這會做包含foo
線bar->blah
替代。隨着:s
我們可以:
:%s/foo/\=substitute(getline('.'), 'bar','blah','g')
所以:g
更容易。
所以如果你正在處理替代任務,通常應該首先提出:s
。如果您想對所有匹配xxx的行執行類似的操作,我想刪除/ join/indent/.......:g
可能對您有所幫助。
- 1. vi/vim中的s,c和r命令有什麼區別?
- 2. vim中的C,cc和S命令有什麼區別
- 3. 在Perl中,s/^ \ s + //和s/s + $ //有什麼區別?
- 4. char * s和char * s有什麼區別?
- 5. s ++和* s ++有什麼區別嗎?
- 6. mvn:deploy和mvn:install命令有什麼區別?
- 7. linux和unix命令有什麼區別?
- 8. elasticbean中的命令和容器命令有什麼區別
- 9. vim中de和dw有什麼區別?
- 10. 'gcc -g'和'gcc -g3'有什麼區別?
- 11. g ++和gcc有什麼區別?
- 12. 「黃瓜」命令和「耙黃瓜」命令有什麼區別?
- 13. 運行命令和cmd命令有什麼區別?
- 14. MacVim和普通Vim有什麼區別?
- 15. MacVim和Vim有什麼區別?
- 16. '>'和'#'在Linux中的命令行界面有什麼區別?
- 17. C,I和S命令組合在VIM
- 18. 有什麼區別複製命令 - windows
- 19. 這些POST命令有什麼區別?
- 20. 一些OpenCV命令有什麼區別?
- 21. printf(「%s」),printf(「%ls」),wprintf(「%s」)和wprintf(「%ls」)有什麼區別?
- 22. Double.valueOf(String s)和Double.ParseDouble(String s)有什麼區別?
- 23. Selenium IDE中的uncheck和uncheckAndWait命令有什麼區別?
- 24. makefile中「mv」和「-mv」shell命令有什麼區別?
- 25. 在Ruby的「gsub」和Vim的替代命令中,「g」代表什麼?
- 26. 有什麼區別:q和:qa!在Vim中?
- 27. 「功能」和「功能!」有什麼區別?在VIM中?
- 28. Vim netrw - Explore命令之間的區別?
- 29. 安裝包在兩個命令中有什麼區別?
- 30. 有什麼區別`和$(Bash中有什麼區別?
':%s'是應用於整個文檔的替代命令,不是作爲':g'的全局公共前綴。 – 2014-09-05 11:16:13
@ Jean-KarimBockstael我認爲你將':g [lobal]'命令與選項和變量的'g:[name]'前綴相混淆。 – 2014-09-05 11:35:52
如果您今天開始使用vim,我強烈建議您使用vim-tutor。你可以用':help tutor'直接在vim中找到關於它的信息。 – mMontu 2014-09-05 12:55:56