正如标题所说。我想用&符号(&)代替“标签”。
我用:
:%s/\t/&/g
当然它不起作用。我在mac os x上使用vim(如果这有所不同)。谢谢!
答案 0 :(得分:8)
你确定它是&符号的问题吗?我对该标签有更多的抱怨。不要忘记逃避它。
class SuperDad {
XXX:
SuperDad(); // = delete?
};
class Child : YYY SuperDad {
public:
Child(int a) {...}
};
答案 1 :(得分:0)
&符号的问题在于它是regular expression metacharacter for backreferences。正则表达式的替换部分中的&
字符表示“在表达式的匹配部分中匹配的所有内容”。
因此,例如,如果您有一个包含以下行的文件:
The quick brown fox jumps over the lazy dog.
执行像:s/jumps/a&b/
这样的vi命令会产生以下行:
The quick brown fox ajumpsb over the lazy dog.
您可以使用:s/\(jumps\)/a\1b/
执行相同的操作,但这样可以输入更多内容。
为什么&有用的,不仅仅是例如别名\1
在简单的匹配表达式中?好吧,你也可以这样做::s/lazy \(dog\|cat\)/"&" is now "stupid \1"/
:
The quick brown fox jumps over the "lazy dog" is now "stupid dog".
如果&
不可用,表达式会非常难看。