我有一段像这样的代码
int a=8;
cout<<"a is :"<<a<<endl; // show what is the value of a
a=a*a;
string b="ice"; // b is ice
const char* c=b.c_str();
此代码以完全相同的方式在许多地方重复。我想找到这段代码的所有出现。我以为我可以复制代码并将其放入其中一个寄存器中,并使用寄存器的内容来执行匹配。文本可以包含任何特殊字符,在匹配时,需要将其视为普通文本。是否可以使用寄存器内容进行匹配?用其他方式我可以做到这一点?
答案 0 :(得分:2)
通过选择线条,然后搜索视觉选择,您变得更加容易,并且不会破坏寄存器。有几个插件可以将内置的普通模式*
命令扩展为可视模式,也可以是我的SearchHighlighting plugin。 (插件页面包含指向其他插件的链接。)
如果您想通过寄存器手动执行此操作,请使用非常狂野(\V
)模式,并转义特殊字符。要将(转义的)寄存器内容插入命令行,请使用表达式寄存器插入寄存器<C-R>
:
/\V<C-R>=substitute(escape(@@, '/\'), '\n', '\\n', 'g')<CR><CR>