Vim глобальная замена (строка)
опция "global" работает не так, как ожидалось (это, похоже, изменилось только недавно, но я пока не могу отследить причину разницы).
Дана строка:
aba
Я отдаю команду:
: s/a/ / g
Я ожидаю, что результат должен быть:
b
однако результирующая строка есть:
ба
Что я пропустила?
2 ответов
у вас, скорее всего, есть 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?
.
Если входные данные и команды ровно Как вы их даете, я не вижу причин для такого поведения.
Я ставлю на то, что второе " а " не то, что вы думаете. Например, это может быть кириллица "а", то есть" а " (U+0430). На моем экране они неразличимы.