Vim Case-Agnostic Regex - PullRequest
       3

Vim Case-Agnostic Regex

10 голосов
/ 13 января 2009

Я несколько раз сталкивался со следующим случаем, и мне было интересно, есть ли быстрый способ справиться с ним в 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 различными регулярными выражениями, но, похоже, должен быть лучший способ. Есть идеи?

Ответы [ 2 ]

10 голосов
/ 13 января 2009

Этот скрипт будет выполнять поиск / замену с сохранением регистра.

Скопируйте скрипт в каталог плагинов (~/.vim/plugin), затем выполните

:set ic
:%s/foo/\=KeepCaseSameLen(submatch(0), 'bar')/g
1 голос
/ 26 февраля 2012

Плагин Тима Папы Vim Abolish может сделать это и еще целую тонну. :%Subvert/string/new string/g сохранит регистр, заглавные буквы и т. Д., И плагин также поддерживает варианты слов с использованием синтаксиса {var1,var2}. Очень полезно.

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