2010-07-23 128 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