我正在开发一个项目,我将二叉树的实现转换为AVL树,所以我有一些文件包含如下行:
Tree<int>* p = new Tree<int>(*t);
到处都是。我想到的目标是使用vim正则表达式将字符串Tree
的所有实例转换为字符串AVLTree
,因此上面的行将成为:
AVLTree<int>* p = new AVLTree<int>(*t);
我尝试的正则表达式是:%s/Tree/AVLTree/g
,但结果是:
AVLTree<int>* p = new Tree<int>(*t);
我向我看,就像当vim在一条线上找到要替换的东西时,它会跳到下一条线,那么有没有办法在同一条线上匹配多个字符串?我意识到这可以用多个正则表达式完成,所以我的问题主要是学术性的。
答案 0 :(得分:2)
对此人的信任归于Marth指出这一点。我的问题出在vim的gdefault
上。默认情况下,它设置为“关闭”,这意味着您需要/ g标记才能使搜索成为全局,这就是我想要的。我认为我的设置是&#39; on&#39;,这意味着没有标签,搜索是全局的,但是标签搜索不是。我发现这张图表来自:help 'gdefault'
有用:
command 'gdefault' on 'gdefault' off
:s/// subst. all subst. one
:s///g subst. one subst. all
:s///gg subst. all subst. one