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

17
我已经在vim中安装了Syntastic插件,但无法正常工作。我尝试过:SyntasticEnable,但没有成功。在我的vimrc中使用SyntasticEnable python也不起作用(实际上,它甚至不能解析该命令,在我尝试将其添加到我的.vimrc时会显示错误:Not an editor command: SyntasticEnable python)。
我该如何知道发生了什么?当我从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_checkers中有一个名为python.vim的文件。我已经可以使用Pyflakes来检查Python文件,它运行得非常好,但是我希望在开发应用程序时,能够在其他文件/扩展中使用Syntastic功能。

2个回答

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\"" 

我正在使用Linux,难道不应该直接运行吗?你试过在你的.vimrc文件中使用“SyntasticEnable”并检查是否与我遇到的错误相同吗? - Somebody still uses you MS-DOS
如果您在终端中运行pyflakes而不指定路径,即只需键入“pyflakes myfile”,它应该可以“开箱即用”。(我没有在我的_vimrc文件中使用SyntasticEnable,因为那会出现与您一样的错误。) 您要使用Syntastic检查哪种文件类型? 您可能没有所需的二进制文件,例如HTML需要tidy,JavaScript需要jsl。 - James
pyflakes正在工作,我在syntastic方面遇到了问题。我将去寻找你所说的二进制文件。谢谢! - Somebody still uses you MS-DOS
你说得对,我需要可执行文件。我正在进入syntax_checkers目录中的每个<语法>.vim文件,以了解使用哪些可执行文件。谢谢! - Somebody still uses you MS-DOS

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)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接