簡體   English   中英

如何使用%s替換vim中雙引號內的所有內容?

[英]How to substitute all the contents inside double quotes in vim using %s?

我有一個帶有用戶名和密碼的配置文件,如下所示:

username = "someuser"; password = "blabla";
username = "anotheruser"; password = "tralala";

有時配置不是非常有條理,因此我們可以將符號“ =”設置為更近或帶有雙倍空格,例如

username=  "foo"

因此,在vim中,我如何用一些神奇的regex表達式將所有內容替換為用戶名和密碼,以便使所有內容類似:

username = "no_user"; password = "no_password";

請注意,我的主要目標是替換雙引號內的內容。 該組織只是一個加號。 謝謝。

嘗試這樣做:

:%s:username *= *"[^"]\+":username = "no_user":g
:%s:password *= *"[^"]\+":password = "no_passwd":g

您可以使用捕獲組輕松進行組織:

:%s/\(username\|password\)\s*=\s*\("[^"]*"\)/\1 = \2/g

如果您只想更改值,最好通過2個單獨的替換來完成。

:%s/username\zs\s*=\s*"[^"]*"/ = "no_user"
:%s/password\zs\s*=\s*"[^"]*"/ = "no_password"

注意我正在使用\\zs在標簽后開始匹配,以避免使用更長的命令。

有關更多幫助,請參見:

:h :s
:h /\(
:h /\zs
:h pattern

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM