17

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

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

我的 .vimrc 中有:

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

我也有一个python.vim~/.vim/syntax_checkers我已经可以将Pyflakes用于 python 文件,它工作得很好,但我希望在开发应用程序时需要的其他文件/扩展中具有 Syntastic 功能

4

2 回答 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\"" 
于 2010-08-24T02:09:31.707 回答
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 )

于 2012-02-09T00:43:09.587 回答