无法让“语法”vim插件正常工作

2022-08-30 23:44:46

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

我怎么知道发生了什么?当我从vim调用它时,Syntastic没有显示错误。第一个错误(在我的)是否表示我不知道的事情?not and 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

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


答案 1

是否在您的环境路径上?如果不是,则必须将其添加到路径中,或者修改语法\checkers\python.vim并将完整路径添加到二进制文件中。您必须修改两行:pyflakes

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

答案 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 )


推荐