Find

在 vim 中使用帶有 find&replace 的正則表達式

  • April 19, 2020

我想知道如何使用正則表達式來指定要在 vim 中找到和替換的目錄。

例如:更改 httpd.conf 中的預設 DocumentRoot 和 Directory。

通常我使用以下命令來查找和替換 vim 中的單個字元串,但這不適用於目錄

:%s/tobefound/tobereplaced/g 

假設你有:

DocumentRoot /var/www/html

而您想更改/var/www/html/home/web,您可以這樣做:

:%s,/var/www/html,/home/web,g

沒有什麼“特別”/的地方,它只是一個常見的欄位分隔符。您可以使用其他字元;在我的例子中,我使用,

和中的任何/字元都需要轉義為,否則它將被解釋為查找和替換命令語法的一部分。tobefound``tobereplaced``\/

例如,替換/tmp/abc//srv/def/將需要%s/\/tmp\/abc\//\/srv\/def\//g

引用自:https://unix.stackexchange.com/questions/580816