如何使用Vim替换conf文件中的某些路径?

时间:2012-02-29 07:21:16

标签: vim

我有这个

88 ca ca.crt
89 cert client.crt
90 key client.key

在openvpn的client.conf中(数字是由vim显示的行号,而不是实际的文本),我想将ca.crt clent.crt client.key更改为右边的所有位于'./容易-RSA / 2.0 /键/'

我试过这种方式:

88,90s;^(\w) (\w);\1 easy-rsa/2.0/keys\2;

原来是'找不到图案'

[解决]

我用这个解决了这个问题:

:88,90s;\(^\w\+\>\)\s\(\w\+\>\);\1 easy-rsa/2.0/keys/\2;

我在问题中犯的错误是: 1.引用必须在模式中转义,因此它应该\( \)而不仅仅是()

关于解决方案的一些解释:  \w只匹配可以组成单词的字符,因此请使用vim扩展正则表达式\+匹配一个或多个\w\>来暗示单词的结尾< / p>

和更简单的解决方案:

88,90s;\s\(\w*\); easy-rsa/2.0/keys/;

对不起因为我造成的麻烦,我还没有足够的声誉来回答我自己的问题。

1 个答案:

答案 0 :(得分:2)

您也可以通过以下方式实现相同目标:

88,99s;\s\zs;easy-rsa/2.0/keys/;