Vim Case-Agnostic Regex

10 regex vim

我几次遇到以下情况,我想知道是否有一种快速的方法来处理它在Vim.

我将有一个如下所示的源文件:

#ifndef _FOO_H_
#define _FOO_H_

class Foo {
    Foo(int foo);
};
#endif
Run Code Online (Sandbox Code Playgroud)

我想将其转换为以下内容:

#ifndef _BAR_H_
#define _BAR_H_

class Bar {
    Bar(int bar);
};
#endif
Run Code Online (Sandbox Code Playgroud)

所以,我想要所有的foo - > bar,但要保留原始的大写.现在,我一直在使用3或4个不同的正则表达式,但似乎应该有更好的方法.有任何想法吗?

dF.*_*dF. 10

该脚本将执行保留案例的搜索/替换.

将脚本复制到插件目录(~/.vim/plugin),然后执行

:set ic
:%s/foo/\=KeepCaseSameLen(submatch(0), 'bar')/g
Run Code Online (Sandbox Code Playgroud)