2009-04-28 45 views
0

我错误地做了标记折叠到我的.vimrc:错误更正折叠标记在VIM

{{{8 #CS 
something.. 
}}}8 
{{{9 #Math 
... 
}}}9 
... many more! 

我需要切换格式,以 “#SOMETHING {{{NUMBER”,如:

#CS {{{8 
something.. 
}}}8 
#Math {{{9 
... 
}}}9 
... many more! 

什么是错在下面的代码:

:%s$/({{{\d/) /(#[:alpha:]/)$\2 \1$g 

[解决方法]

%s$\({{{\d\) \(#[[:alnum:]]*\)$\2 \1$g 

回答

1

你忘了逃跑的括号,和POSIX字符类只有一个字符类[[:alpha:]]内有效:

:%s$/\({{{\d/\) /\(#[[:alpha:]]/\)$\2 \1$g 

但是请注意,您的示例文本中不包含任何斜杠 - 这算什么你的示例文本实际上是?

上述正则表达式改变了这种

/{{{8/ /#A/ 

对此

#A/ {{{8/ 
1

:%s/{{{\(\d\) \(.*\)/\2 {{{\1/g

它的工作原理,但在你的正则表达式我不明白你为什么有年代后一个$。

+0

在S之后的符号并不重要,除非你需要的符号。例如,我通常使用#但现在在比赛中有一个#号,所以我必须使用其他的。选择适合你的任何东西。 – 2009-04-28 22:35:43

+0

建议一句话:使用。*会导致混沌回溯。就我而言,我需要非常精确以避免回溯。 – 2009-04-28 22:38:28