Замените исходное слово на содержащее / (прямую косую черту) на целевое слово в окне команд редактора VI

Система -> Администрирование -> Источники программного обеспечения -> Обновления (вкладка) -> Проверить наличие обновлений: [Ежедневно | Каждые два дня | Еженедельно | Каждые две недели]

2
задан 28 June 2019 в 15:52

2 ответа

В приведенном вами примере с файлом, содержащим

/root/repo/my-gerrit/myData.cpp

Это можно изменить на

/repo/my-gerrit/myData.cpp

с помощью команды :%s/\root//gc.

Вы попытались %s\/root\/\repo\/repo/gc, в котором отсутствуют нормальные косые черты. Чтобы заменить /root/repo/ на /repo/, команда будет иметь вид %s/\/root\/repo\//\/repo\//gc

Обратите внимание, что косые черты, которые вы хотите заменить, экранируются с помощью \. Прямая косая черта, являющаяся частью команды, не не экранирована.

2
ответ дан 28 June 2019 в 15:52

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

Такой как:

:%s#/root/repo/#/repo/#gc

Или:

:%s+/root/repo/+/repo/+gc

Или:

:%s,/root/repo/,/repo/,gc

Можно использовать почти любой символ в качестве разделителя на :s команда, таким образом, должно быть легко найти то, которое не требует выхода что символ в шаблоне или замене.

См. также :help E146

1
ответ дан 1 December 2019 в 16:16

Другие вопросы по тегам:

Похожие вопросы: