VIM替代php_getset插件

时间:2013-08-09 17:09:50

标签: php regex vim vim-plugin

我正在查看名为php_getset的vim ftplugin。它为php属性生成getter和setter。虽然它工作得很好,但它并没有正确地猜出缩进。我正试图解决这个问题。相关代码如下:

let s:phpname = '[a-zA-Z_$][a-zA-Z0-9_$]*'
let s:variable = '\(\s*\)\(\([private,protected,public]\s\+\)*\)\$\(' . s:phpname . '\)\s*\(;\|=[^;]\+;\)'
... (inside a function)
let s:indent    = substitute(a:variable, s:variable, '\1', '')
let s:varname   = substitute(a:variable, s:variable, '\4', '')
let s:funcname  = toupper(s:varname[0]) . strpart(s:varname, 1)

通过调试,我发现a:variable的值为d $downPayment;(d来自单词&#34的末尾;受保护")。我不理解substitute完成的第三个论点。我以前读过关于反向引用的内容,但我无法看到他们在此代码中做了什么。

提前感谢您的帮助。如果我能够更清楚地提出问题或提供更多细节,请告诉我。

0 个答案:

没有答案