Как заменить какой-либо путь в файле conf с помощью Vim? - PullRequest
2 голосов
/ 29 февраля 2012

У меня есть

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

в файле client.conf в openvpn (номер - это номер строки, отображаемый vim, а не фактическим текстом), и я бы хотел изменить ca.crt clent.crt client.key на правую часть, все они находятся в './ легко и РКА / 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 и \> для обозначения конца слова

и более простое решение:

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

Извините за возникшую проблему, у меня недостаточно репутации, чтобы ответить на свой вопрос.

1 Ответ

2 голосов
/ 29 февраля 2012

Вы также можете достичь того же с:

88,99s;\s\zs;easy-rsa/2.0/keys/;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...