vim 的搜尋功能是在普通模式下輸入 / 開始的, 並且 vim 的搜尋預設用正規表示式. 所以掌握正規表示式和正規表示式在 vim 中的用法對於提公升 vim 體驗極其重要. vim 的正規表示式幫助可以從:h usr_27 或 :h regexp獲得(善用幫助).
vim 包含兩個正規表示式引擎:
老式的基於回溯的引擎, 支援所有功能.
新式的 nfa 引擎, 對某些模式會快很多, 但不支援所有功能.
vim 會自動為你選擇合適的引擎, 不過, 如果遇到了問題或者想特別指定某乙個引擎, 可以在模式開頭處加入:
\%#=0 強制自動選擇通常我們不需要關心正規表示式引擎, 甚至不用過多關注正規表示式語法, 只管在/後面輸入文字搜尋即可. 但下面的知識對提高效率非常有效.\%#=1 強制使用舊引擎
\%#=2 強制使用 nfa 引擎
表示式含義
a|b匹配 a 或 b
gr(a|e)y
匹配 gray或 grey,同時()起捕獲分組作用
.匹配任一字元
[abc]
匹配任一字元: a 或 b 或 c
[^abc]
匹配任一字元, 但不包括 a, b, c
[a-z]
匹配從 a 到 z 之間的任一字元
[a-za-z]
匹配從 a 到 z, 及從 a 到 z 之間的任一字元
^匹配行首
$匹配行尾
*匹配前一項內容 0 次或多次
?匹配前一項內容 0 次或 1 次
+匹配前一項內容 1 次或多次
匹配前一項內容 n 次
匹配前一項內容 n 次或多次
匹配前一項內容次數介於 n 和 m 之間
vim 的正規表示式與主流的正規表示式基本一致, 對於熟悉 python, .net, perl(額)語言的同學在用 vim 的時候肯定會很親切. 但是畢竟有些不同.
一般正規表示式
vim 正規表示式含義\
\\分隔可選分支
()\(\)
分組, 組成單個匹配源
{}\{}
指定匹配次數{}\
指定匹配次數, 但是盡可能少..
匹配任一字元*\*
匹配前一項內容 0 次或多次?\?
匹配前一項內容 0 次或 1 次?\=
匹配前一項內容 0 次或 1 次+\+
匹配前一項內容 1 次或多次
記住了上面 vim 特有的寫法, 再去寫搜尋表示式就很簡單自然了.
這個最管用
vim 正規表示式
vim正規表示式 vim中的正規表示式功能很強大,如果能自由運用,則可以完成很多難以想象的操作。如果你比較熟悉perl的正規表示式,可以直接參照 與perl正規表示式的區別 一節。使用正規表示式的命令 使用正規表示式的命令最常見的就是 搜尋 命令。其格式如下 正規表示式 另乙個很有用的命令就是 s ...
vim正規表示式
元字元 說明 匹配任意乙個字元 abc 匹配方括號中的任意乙個字元。可以使用 表示字元範圍,如 a z0 9 匹配小寫字母和阿拉伯數字。abc 在方括號內開頭使用 符號,表示匹配除方括號中字元之外的任意字元。d 匹配阿拉伯數字,等同於 0 9 d 匹配阿拉伯數字之外的任意字元,等同於 0 9 x 匹...
Vim正規表示式
vim中的正規表示式功能很強大,如果能自由運用,則可以完成很多難以想象的操作。如果你比較熟悉perl的正規表示式,可以直接參照與perl正規表示式的區別 一節。使用正規表示式的命令最常見的就是 搜尋 命令。其格式如下 正規表示式另乙個很有用的命令就是 s 替換 命令,將第乙個 之間的正規表示式替換成...