У меня есть файл хостов 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/# &/
Где &
это стенография для всего, что только что соответствовало