Как заменить одну строку в энергии?

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

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

спасибо.

2
задан 30.08.2010, 07:41

2 ответа

Использовать & в тексте замены для положения целую исходную строку:

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

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

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

С другой стороны, используйте g команда для применения s команда ко всем согласующим отрезкам длинной линии:

g/[ .]google\.com\.hk\( \|$\)/ s/^/#/
6
ответ дан 08.12.2019, 04:58

Как это:

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

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

С другой стороны, Вы могли сделать:

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

Где & сокращение от того, что было просто подобрано

2
ответ дан 08.12.2019, 04:58

Теги

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