Поиск и замена в диапазоне строки и столбца - PullRequest
6 голосов
/ 02 октября 2010

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

AAABBBFFFFBBBAAABBB
AAABBBFFFFBBBAAABBB
GGGBBBFFFFBHHAAABBB

Например, я хочу заменить BBB на YYYв диапазоне от 1 до 2 и от столбца 4 до 6, затем получим следующий вывод:

AAAYYYFFFFBBBAAABBB
AAAYYYFFFFBBBAAABBB
GGGBBBFFFFBHHAAABBB

Есть ли способ сделать это с Vim?

Ответы [ 2 ]

11 голосов
/ 02 октября 2010
:1,2 s/\%3cBBB/YYY/

\%3c означает третий столбец (см. :help /\%c или более глобально :help pattern)

4 голосов
/ 02 октября 2010

Если это всегда первый, который вы хотите заменить, просто не указывайте / g

:1,2s/BBB/YYY/

будет работать нормально.

В качестве альтернативы, если вам нужно точно указать, какой столбец вы хотите заменить, вы можете использовать синтаксис \%Nv, где N - это виртуальный столбец (столбец, как он выглядит, поэтому вкладки - это несколько столбцов, используйте c вместо v фактические столбцы)

Замена второго набора B в строках 1 и 2 может быть сделана с помощью:

:1,2s/\%11vBBB/YYY/
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...