vim
中常用的替換模式
總結。 1
,簡單替換
表示式 替換
命令可以在全文中用乙個單詞替
換另乙個單詞:
:%s/four/4/g
"%" 範圍
字首表示在所有行中執行替
換。最後的
"g"
標記表示替
換行中的所有匹配點。
如果僅僅對當前行進行操作,那麼只要去掉%即可
"thirtyfour" 這樣的
單詞,上面的命令會出錯。
這種情況下,這個
單詞會被替換成
"thirty4"
。要解決這個
問題,用
"/<"
來指定匹配
單詞開頭:
:%s// 顯
然,這樣在處
理"fourty" 的時
候還是會出錯
。用"/>"
來解決這個問題
: :%s///4/g
如果你在
編碼,你可能只想替換注
釋中的"four"
,而保留代
碼中的。由於這很
難指定,
可以在替
換命令中加乙個
"c" 標記,
這樣,vim 會在每
次替換前提示你:
:%s///4/gc
2,刪除多餘的空格 要
刪除這些
每行後面多餘的空格,可以
執行如下命令:
:%s//s/+$//
命令前面指明範圍是
"%",所以
這會作用於整個檔案。
"substitute"
命令的匹配模式是
"/s/+$"。這
表示行末(
$)前的乙個或者多個(
/+)空格(
/s)。替
換命令的
"to"
部分是空的:
"//"。這樣
就會刪除那些匹配的空白字元。
3,匹配重複性模式 星號
項"*"
規定在它前面的
項可以重
復任意次。因此:
/a*
匹配"a"
,"aa"
,"aaa"
,等等。但也匹配
"" (
空字串),因為
零次也包含在內。星號
"*"
僅僅應用於那個
緊鄰在它前面的
項。因此
"ab*"
匹配"a"
,"ab"
,"abb","abbb"
,等等。如要多次重
復整個字串,那
麼該字串必須被
組成乙個項。
組成一項的
方法就是在它前面加
"/("
,後面加
"/)"
。因此這
個命令:
//(ab/)*
匹配: "ab"
,"abab"
,"ababab"
,等等。而且也匹配""。
要避免匹配空字串,使用
"/+"。這
表示前面一
項可以被匹配一次或多次。
/ab/+ 匹配
"ab"
,"abb"
,"abbb"
,等等。它不匹配
後面沒有跟隨
"b"
的"a"。
要匹配乙個可
選項,用
"/="。例如
: /folders/= 匹配
"folder"
和"folders"。
4,指定重複次數
要匹配某一
項的特定次數重
復,使用
"/"
這樣的形式。其中
"n"
和"m"
都是數字。在它前面的那個
項將被重
復"n"
到"m"
次(|inclusive|
包含"n"
和"m")
。例如:
/ab/ 匹配
"abbb"
,"abbbb"
以及"abbbbb"。
當"n" 省略時
,被預設為
零。當"m" 省略時
,被預設為
無限大。當
",m" 省略時
,就表示重複正好
"n"
次。例如:
模式匹配次數
/ 0,1
,2,3
或4/ 3,4
,5,等等
/ 0 或1
,同/=
/ 0
或更多,同*
/ 1
或更多,同/+
/ 3
5,多選一匹配
在乙個查詢模式中,"或
" 運算子是
"/|"
。例如:
/foo/|bar 這
個命令匹配了
"foo"
或"bar"
。更多的抉擇可以
連在後面:
/one/|two/|three 匹配
"one"
,"two"
或"three"。
如要匹配其多次重複,那
麼整個抉擇結構
須置於"/("
和"/)" 之間
: //(foo/|bar/)/+ 這
個命令匹配
"foo"
,"foobar"
,"foofoo"
,"barfoobar"
,等等。
再舉個例子:
/end/(if/|while/|for/) 這
個命令匹配
"endif"
,"endwhile"
和"endfor"。
VIM查詢替換歸納總結
vim中常用的替換模式總結。1,簡單替換表示式 替換命令可以在全文中用乙個單詞替換另乙個單詞 s four 4 g 範圍字首表示在所有行中執行替換。組成一項的方法就是在它前面加 後面加 因此這個命令 ab 匹配 ab abab ababab 等等。而且也匹配 要避免匹配空字串,使用 這表示前面一項可...
VIM查詢替換歸納總結
來自 1,簡單替換表示式 替換命令可以在全文中用乙個單詞替換另乙個單詞 s four 4 g 範圍字首表示在所有行中執行替換。最後的 g 標記表示替換行中的所有匹配點。如果僅僅對當前行進行操作,那麼只要去掉 即可 s 顯然,這樣在處理 fourty 的時候還是會出錯。用 來解決這個問題 s 4 g ...
VIM查詢替換歸納總結
vim查詢替換歸納總結 vim中常用的替換模式 總結。1 簡單替換 表示式 替換 命令可以在全文中用乙個單詞替 換另乙個單詞 s four 4 g 範圍 字首表示在所有行中執行替 換。最後的 g 標記表示替 換行中的所有匹配點。如果僅僅對當前行進行操作,那麼只要去掉 即可 thirtyfour 這樣...