2009-04-28 84 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