无法使"Syntastic" vim插件正常工作

17 投票
2 回答
10364 浏览
提问于 2025-04-16 01:44

我在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 个回答

1

你有没有检查过 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

5

你的环境路径中有 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\"" 

撰写回答