VIM Regex搜尋字串__Regex

來源:互聯網
上載者:User


      在插入模式下,為了減少重複的擊鍵輸入,VIM 提供了若干快速鍵,當你要輸入某個上下文曾經輸入過的字串時,你只要輸入開頭若干字元,使用快速鍵,VIM 將搜尋上下文,找到匹配字串,把剩下的字元補全,你就不必敲了。這樣,編程式時你起多長的變數名都沒關係了,:-) 而且還可以減少輸入錯誤。我認為,插入補全是 VIM 最為突出的一項功能。

i<C-P>   向上搜尋,補全一個詞。例如,上文中出現過 filename 這個詞,當你想再輸入 filename 時,只要按 f<C-P> 即可。假如 VIM 向上搜尋,找到以 f 開頭的第一個匹配不是 filename,你可以繼續按 <C-P> 搜尋下一個匹配進行補全。當然,如果你想一次 <C-P> 就成功,你可以多輸入幾個字元比如 filen 再按 <C-P> 補全

i<C-N>   向下搜尋,補全一個詞

i<C-X><C-L>      補全一行。比如你寫過一行 for (int i = 0; i < 100; i++),你想再寫一模一樣的一行,只要輸入 for<C-X><C-L> 即可。如果補全出來的不是你想要的那一行,你可以按 <C-P> 或 <C-N> 選擇上一個或下一個匹配行
i<C-X><C-F>      在檔案系統中搜尋,補全一個檔案名稱

如果按 <C-P> 或 <C-N> 補全一個詞,在當前檔案中沒有找到匹配,VIM 將搜尋 #include 語句中的檔案,而檔案的位置將在 path 中搜尋。

搜尋字串用的是正規運算式(Regular expression),其中許多字元都有特殊含義:
\        取消後面所跟字元的特殊含義。比如 \[vim\] 匹配字串“[vim]”
[]       匹配其中之一。比如 [vim] 匹配字母“v”、“i”或者“m”,[a-zA-Z] 匹配任意字母
[^]      匹配非其中之一。比如 [^vim] 匹配除字母“v”、“i”和“m”之外的所有字元
.        匹配任一字元
*        匹配前一字元大於等於零遍。比如 vi*m 匹配“vm”、“vim”、“viim”……
\+       匹配前一字元大於等於一遍。比如 vi\+m 匹配“vim”、“viim”、“viiim”……
\?       匹配前一字元零遍或者一遍。比如 vi\?m 匹配“vm”或者“vim”
^        匹配行首。例如 /^hello 尋找出現在行首的單詞 hello
$        匹配行末。例如 /hello$ 尋找出現在行末的單詞 hello
\(\)     括住某段正規運算式
\數字    重複匹配前面某段括住的運算式。例如 \(hello\).*\1 匹配一個開始和末尾都是“hello”,中間是任一字元串的字串

對於替換字串,可以用“&”代表整個搜尋字串,或者用“\數字”代表搜尋字串中的某段括住的運算式。

舉一個複雜的例子,把文中的所有字串“abc……xyz”替換為“xyz……abc”可以有下列寫法:
:%s/abc\(.*\)xyz/xyz\1abc/g
:%s/\(abc\)\(.*\)\(xyz\)/\3\2\1/g
其它關於正規運算式搜尋替換的更詳細準確的說明請看 :help pattern 

例如:在文本中搜尋所有包含amount大於0的以[ ] 括住的字串的行,如 “amount[123]“,  ”amount[200]“ 等:

          首先按 :進入命令 模式,然後輸入下面的串再斷行符號開始尋找:/amount\[[1-9]\([0-9]*\)\+\] 

     解釋如下:

      /  表示進行串搜尋, 其它字元為 Regex的內容

     amount  表示匹配串包含amount

     \[  逸出字元,表示匹配左中括弧 [

     [1-9]  表示匹配一位1到9之間任何數字

     \(  \)   轉義的左右括弧,表示括住某段Regex,

    \+  逸出字元+,表示前面一個字元或一個正則串重複1次或多次,所以,\([0-9]*\) 表示 任意個0-9之間的數字

    \]   逸出字元 ] 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.