我玩用vim-紅寶石縮進,並且有一些非常複雜的正則表達式有:暫時解除vim的正則表達式
" Regex used for words that, at the start of a line, add a level of indent.
let s:ruby_indent_keywords = '^\s*\zs\<\%(module\|class\|def\|if\|for' .
\ '\|while\|until\|else\|elsif\|case\|when\|unless\|begin\|ensure' .
\ '\|rescue\):\@!\>' .
\ '\|\%([=,*/%+-]\|<<\|>>\|:\s\)\s*\zs' .
\ '\<\%(if\|for\|while\|until\|case\|unless\|begin\):\@!\>'
用vim文檔的幫助下,我破譯它的意思是:
start-of-line <any number of spaces> <start matching> <beginning of a word> /atom
<one of provided keywords> <colon character> <nothing> <end of word> ...
我有些疑惑:
- 它真的和''匹配嗎?似乎沒有像那樣工作,但我沒有看到冒號在正則表達式中是什麼特殊字符。
- 爲什麼有
\zs
(比賽開始)和無\ze
(比賽結束)? - \%()做了什麼?這只是某種形式的分組嗎?