Ответ 1
Этот script выполнит поиск/замену, сохраняющий регистр.
Скопируйте script в каталог плагина (~/.vim/plugin
), затем выполните
:set ic
:%s/foo/\=KeepCaseSameLen(submatch(0), 'bar')/g
Я несколько раз сталкивался с следующим случаем, и мне было интересно, есть ли у него быстрый способ справиться с этим в Vim.
У меня будет исходный файл, например:
#ifndef _FOO_H_
#define _FOO_H_
class Foo {
Foo(int foo);
};
#endif
И я хотел бы преобразовать его в следующее:
#ifndef _BAR_H_
#define _BAR_H_
class Bar {
Bar(int bar);
};
#endif
Итак, я хочу все foo → bar, но сохранить заглавную копию оригинала. Прямо сейчас, я делал это с 3 или 4 различными регулярными выражениями, но, похоже, должен быть лучший способ. Любые идеи?
Этот script выполнит поиск/замену, сохраняющий регистр.
Скопируйте script в каталог плагина (~/.vim/plugin
), затем выполните
:set ic
:%s/foo/\=KeepCaseSameLen(submatch(0), 'bar')/g
Тим Папа Плагин Vim Abolish может сделать это и целую тонну больше. :%Subvert/string/new string/g
сохранит регистр, капитализацию и т.д., а плагин также поддерживает варианты слов, используя синтаксис {var1,var2}
. Очень полезно.