2

У меня есть файл хостов ipv6. Нет, я хочу добавить символ комментария # к каждой строке с именем "google.com.hk".

Как я мог сделать это в VIM? Я думал, что это будет что-то вроде %s/^.*google\.com\.hk/^#???/ .

Благодарю.

2 ответа2

6

Используйте & в тексте замены, чтобы обозначить всю исходную строку:

%s/^.*google\.com\.hk/#&/

или, чтобы не заменять такие вещи, как not-google.com.hk и google.com.hk.example.com:

%s/^.*[ .]google\.com\.hk\( \|$\)/#&/

В качестве альтернативы используйте команду g чтобы применить команду s ко всем совпадающим строкам:

g/[ .]google\.com\.hk\( \|$\)/ s/^/#/
2

Как это:

%s/\(^.*google\.com\.hk\)/# \1/

Это говорит VIM искать, что находится в скобках, в данном случае ^.*google\.com\.hk , и помещать это в переменную \1 . Затем вы заменяете все, что вы нашли ранее, на # последующим \1 .

В качестве альтернативы вы можете сделать:

%s/^.*google\.com\.hk/# &/

Где & это стенография для всего, что только что соответствовало

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .