Vim global replace (строка) - PullRequest
       3

Vim global replace (строка)

6 голосов
/ 07 апреля 2011

Опция «global» не работает должным образом (похоже, она изменилась только недавно, но я пока не могу выяснить причину этой разницы).

С учетом строки:

aba

Я выдаю команду:

: s / a // g

Я ожидаю, что результат будет:

b

Тем не менее, результирующая строка будет:

ба

Что я пропустил?

Ответы [ 2 ]

20 голосов
/ 07 апреля 2011

Скорее всего, gdefault установлено в вашем .vimrc.

С :help gdefault:

When on, the ":substitute" flag 'g' is default on.  This means that
all matches in a line are substituted instead of one.  When a 'g' flag
is given to a ":substitute" command, this will toggle the substitution
of all or one match.

Если вы не установили это в своей конфигурации, вы можете увидеть, гдеэто устанавливается путем выдачи :verbose set gdefault?.

2 голосов
/ 07 апреля 2011

Если ввод и команда точно , как вы их даете, я не вижу причин для такого поведения.

Мои деньги на втором "а" не являются тем, что вы думаете. Например, это может быть кириллица "а", то есть "а" (U + 0430) . На моем экране эти два неразличимы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...