2010-07-23 40 views
17

我已经在vim中安装Syntastic插件。我无法让它工作。我试过:SyntasticEnable,但没有运气。 SyntasticEnable python in my vimrc也不起作用(事实上,它甚至不解析命令,当我尝试将它添加到我的.vimrcNot an editor command: SyntasticEnable python时显示错误)。无法让“Syntastic”vim插件工作

我怎么知道发生了什么事?当我从vim调用它时,Syntastic不会显示错误。第一个错误(我的.vimrc中的not and editor command)是否表示我不知道的事情?

我有我的.vimrc:

set statusline+=%#warningmsg# 
set statusline+=%{SyntasticStatuslineFlag()} 
set statusline+=%* 
let g:syntastic_enable_signs=1 
let g:syntastic_auto_loc_list=1 

我有一个在~/.vim/syntax_checkerspython.vim为好。我已经可以使用Pyflakes作为python文件,它的工作原理是GREAT但我希望在开发应用程序时需要其他文件/扩展中的Syntastic功能。

回答

5

在您的环境路径上是pyflakes?如果不是,则必须将其添加到路径中,或修改\ 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\"" 
+0

我使用Linux,是不是应该制定出的现成?您是否尝试在.vimrc中使用“SyntasticEnable”,并检查是否与我一样得到相同的错误? – 2010-08-25 13:43:47

+0

如果你在没有明确路径的情况下运行pyflakes,即只需在终端中键入“pyflakes myfile”,它应该“开箱即用”。(我没有在我的_vimrc文件中使用SyntasticEnable,因为它会得到和你一样的错误。)你使用syntastic来检查什么文件类型?您可能没有所需的二进制文件,即HTML需要整洁,JavaScript需要jsl。 – James 2010-08-25 18:07:20

+0

pyflakes正在工作,我遇到了合成问题。我要去寻找你说的二进制文件。谢谢! – 2010-08-25 20:28:09

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