【问题标题】:Can't get "Syntastic" vim plugin to work无法让“Syntastic”vim 插件工作
【发布时间】:2010-07-23 14:40:12
【问题描述】:

我在 vim 中安装了Syntastic 插件。我无法让它工作。我试过:SyntasticEnable 但没有运气。 SyntasticEnable python in my vimrc 也不起作用(事实上,它甚至不解析命令,当我尝试将其添加到我的 .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 功能。

【问题讨论】:

    标签: php python vim syntax-checking syntastic


    【解决方案1】:

    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”并检查您是否遇到与我相同的错误?
    • 如果您在没有明确路径的情况下运行 pyflakes,它应该“开箱即用”,即只需在终端中键入“pyflakes myfile”。 (我没有在我的 _vimrc 文件中使用 SyntasticEnable,因为它会得到与您相同的错误。)您使用什么文件类型来检查 syntastic?您可能没有所需的二进制文件,即 HTML 需要 tidy,而 Javascript 需要 jsl。
    • pyflakes 正在工作,我遇到了合成问题。我要寻找你所说的二进制文件。谢谢!
    • 你说得对,我需要可执行文件。我在 syntax_checkers 目录中的每个 .vim 文件中输入以了解使用了哪些可执行文件。谢谢!
    【解决方案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 找到这个)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-26
      相关资源
      最近更新 更多