置頂 Vim用正規表示式進行批量修改

2021-09-08 16:55:10 字數 984 閱讀 1954

vim可以設定 magic 這個東西, magic就是設定哪些元字元要加反斜槓哪些不用加的。 簡單來說:

magic(\m):除了 $ . * ^ 之外其他元字元都要加反斜槓。

nomagic(\m):除了 $ ^ 之外其他元字元都要加反斜槓。

這個設定也可以在正規表示式中通過 \m \m 開關臨時切換。 \m 後面的正規表示式會按照 magic 處理,\m 後面的正規表示式按照 nomagic 處理, 而忽略實際的magic設定。

/\m.*          # 查詢任意字串

/\m.*          # 查詢字串 .* (點號後面跟個星號)

另外還有更強大的 \v 和 \v。 * \v(即 very magic 之意):任何元字元都不用加反斜槓 * \v(即 very nomagic 之意):任何元字元都必須加反斜槓

例如:/\v(a.c)$   # 查詢行尾的abcaccadc

/\m(a.c)$   # 查詢行尾的(abc)

/\m(a.c)$   # 查詢行尾的(a.c)

/\v(a.c)$   # 查詢任意位置的(a.c)$

預設設定是 magic,vim也推薦大家都使用magic的設定

在正規表示式中使用 /( 和 /) 符號括起正規表示式,即可在後面使用/1 、/2 等變數來訪問 /( 和 /) 中的內容。

有了以上內容,我們可以完成乙個常用的的替換功能了:

這個是查詢if(mrequest[「name」]這樣的模式,然後替換成if(mrequest.find("name")

:s/\vif\(mrequest\[(.*)\]/if\(mrequest.find(\$1)/g

上述命令只會替換一行,如果要替換從第5行到底105行,則為:

:5,105s/\vif\(mrequest\[(.*)\]/if\(mrequest.find(\$1)/g

原文:hongchangfirst

hongchangfirst的主頁:

置頂 正規表示式口訣

寫道 正則其實也勢利,削尖頭來把錢揣 指開始符號 和結尾符號 特殊符號認不了,弄個倒槓來引路 指 等特殊符號 倒槓後面跟小w,數字字母來表示 w跟數字字母 d跟數字 倒槓後面跟小d,只有數字來表示 倒槓後面跟小a,報警符號嘀一聲 倒槓後面跟小b,單詞分界或退格 倒槓後面跟小t,製表符號很明了 倒槓後...

vim 正規表示式

vim正規表示式 vim中的正規表示式功能很強大,如果能自由運用,則可以完成很多難以想象的操作。如果你比較熟悉perl的正規表示式,可以直接參照 與perl正規表示式的區別 一節。使用正規表示式的命令 使用正規表示式的命令最常見的就是 搜尋 命令。其格式如下 正規表示式 另乙個很有用的命令就是 s ...

vim正規表示式

元字元 說明 匹配任意乙個字元 abc 匹配方括號中的任意乙個字元。可以使用 表示字元範圍,如 a z0 9 匹配小寫字母和阿拉伯數字。abc 在方括號內開頭使用 符號,表示匹配除方括號中字元之外的任意字元。d 匹配阿拉伯數字,等同於 0 9 d 匹配阿拉伯數字之外的任意字元,等同於 0 9 x 匹...