我正在查看一些名为 vim_latex ( http://vim-latex.sourceforge.net/ ) 的 latex_suite 代码,我在名为 "templates.vim" 的文件中发现了一些有趣的行:
" Back-Door to trojans !!!
function! <SID>Compute(what)
exe a:what
if exists('s:comTemp')
return s:comTemp.s:comTemp
else
return ''
endif
endfunction
好吧,我不是 vim 代码方面的专家,所以我无法解释这些行,除了让我有点害怕的评论。你们知道发生了什么吗?
编辑: 该函数似乎只被以下一个调用:
" ProcessTemplate: processes the special characters in template file. {{{
" This implementation follows from Gergely Kontra's
" mu-template.vim
" http://vim.sourceforge.net/scripts/script.php?script_id=222
function! <SID>ProcessTemplate()
if exists('s:phsTemp') && s:phsTemp != ''
exec 'silent! %s/^'.s:comTemp.'\(\_.\{-}\)'.s:comTemp.'$/\=<SID>Compute(submatch(1))/ge'
exec 'silent! %s/'.s:exeTemp.'\(.\{-}\)'.s:exeTemp.'/\=<SID>Exec(submatch(1))/ge'
exec 'silent! g/'.s:comTemp.s:comTemp.'/d'
" A function only puts one item into the search history...
call Tex_CleanSearchHistory()
endif
endfunction
根据头文件描述,这些函数的目的是处理位于特定目录中的模板。