无法使"Syntastic" vim插件正常工作
我在vim里安装了Syntastic这个插件,但我没法让它正常工作。我试过输入:SyntasticEnable
,但是没有效果。还有在我的vim配置文件.vimrc
里加SyntasticEnable python
也不行(实际上,它根本没解析这个命令,当我尝试把它加到.vimrc
时,出现了错误:Not an editor command: SyntasticEnable python
)。
我该怎么知道发生了什么?当我在vim里调用Syntastic时,它没有显示任何错误。第一个错误(not an editor command
出现在我的.vimrc
里)是否意味着我不知道的某些事情?
我的.vimrc
里有:
set statusline+=%#warningmsg#
set statusline+=%{SyntasticStatuslineFlag()}
set statusline+=%*
let g:syntastic_enable_signs=1
let g:syntastic_auto_loc_list=1
我在~/.vim/syntax_checkers
里也有一个python.vim
。我已经可以使用Pyflakes来检查python文件,它工作得非常好,但我希望在开发应用时,能在其他文件或扩展名中也使用Syntastic的功能。
2 个回答
你有没有检查过 Vim 的 $PATH 设置是否正确?
:echo $PATH
如果没有的话,可以试着在你的 .vimrc 文件里加上这个:
let $PATH=substitute(system("echo \$PATH"), "\r\*\n", "", "g")
然后关闭并重新启动 Vim。如果这样能正常工作,你就不需要手动更新插件的源文件来包含可执行文件的路径了。
(这个信息是从这里找到的: https://superuser.com/questions/380535/getting-man-path-through-vim)
你的环境路径中有 pyflakes
吗?如果没有的话,你需要把它添加到你的路径中,或者修改 syntax\checkers\python.vim 文件,添加这个程序的完整路径。
你需要修改的有两行:
if !(executable("pyflakes"))
还有
let makeprg = 'pyflakes %'
以我的情况为例,我想让 Syntastic 在我的 Windows 机器上支持 PHP。所以我需要在 php.vim 中修改那两行,变成:
let s:php_executable = "C:\\Uniserver\\usr\\local\\php\\php.exe"
if !(executable(s:php_executable))
还有
let makeprg = php_executable . " -l %"
如果你的路径中有空格,你需要在 makeprg 变量中把它们用双引号括起来。另外,在 html.vim 中,makeprg 里的单引号必须换成双引号(你还需要重新转义里面的所有内容)。
let s:libfolder = "C:\\Program Files (x86)\\GnuWin32\\bin\\"
let s:tidyexe = s:libfolder . "tidy.exe"
let s:grepexe = s:libfolder . "grep.exe"
if !executable(s:tidyexe) || !executable(s:grepexe)
还有
let makeprg="\"".s:tidyexe."\" -e % 2>&1 \\| \"".s:grepexe."\" -v \"\<table\> lacks \\\"summary\\\" attribute\""