我有这个
88 ca ca.crt
89 cert client.crt
90 key client.key
在openvpn的client.conf中(数字是vim显示的行号,不是实际的文本),我想将ca.crt clent.crt client.key更改为正确的位置,全部位于'./easy-rsa/2.0/keys/'
我尝试过这种方法:
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
和 \>
表示单词结束
还有一个更简单的解决方案:
88,90s;\s\(\w*\); easy-rsa/2.0/keys/;
很抱歉给您带来了麻烦,我还没有足够的声誉来回答我自己的问题。
最佳答案
您也可以通过以下方式实现相同的目的:
88,99s;\s\zs;easy-rsa/2.0/keys/;
关于vim - 如何使用 Vim 替换conf文件中的某些路径?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9495060/