У меня есть файл хостов ipv6. Нет, я хочу добавить символ комментария # к каждой строке с именем "google.com.hk".
Как я мог сделать это в VIM? Я думал, что это будет что-то вроде %s/^.*google\.com\.hk/^#???/ .
Благодарю.
Используйте & в тексте замены, чтобы обозначить всю исходную строку:
%s/^.*google\.com\.hk/#&/
или, чтобы не заменять такие вещи, как not-google.com.hk и google.com.hk.example.com:
%s/^.*[ .]google\.com\.hk\( \|$\)/#&/
В качестве альтернативы используйте команду g чтобы применить команду s ко всем совпадающим строкам:
g/[ .]google\.com\.hk\( \|$\)/ s/^/#/
Как это:
%s/\(^.*google\.com\.hk\)/# \1/
Это говорит VIM искать, что находится в скобках, в данном случае ^.*google\.com\.hk , и помещать это в переменную \1 . Затем вы заменяете все, что вы нашли ранее, на # последующим \1 .
В качестве альтернативы вы можете сделать:
%s/^.*google\.com\.hk/# &/
Где & это стенография для всего, что только что соответствовало