我有一个包含用户名和密码的配置文件:
username = "someuser"; password = "blabla";
username = "anotheruser"; password = "tralala";
有时配置不是很有条理,所以我们可以使用符号" ="更近或有双倍空间,如
username= "foo"
所以,在vim中,我怎么能用一些魔法正则表达式表达式替换所有用户名和密码,以便拥有如下所有内容:
username = "no_user"; password = "no_password";
请注意,我的主要目标是替换双引号内的内容。该组织只是一个加号。感谢。
答案 0 :(得分:1)
尝试这样做:
:%s:username *= *"[^"]\+":username = "no_user":g
:%s:password *= *"[^"]\+":password = "no_passwd":g
答案 1 :(得分:1)
您可以使用捕获组轻松完成组织:
:%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