2010-07-23 7 views
17

Ich habe Syntastic Plugin in Vim installiert. Ich kann es nicht zur Arbeit bringen. Ich habe versucht :SyntasticEnable aber kein Glück. SyntasticEnable python in my vimrc funktioniert auch nicht (in der Tat, es analysiert nicht einmal den Befehl, ein Fehler wird angezeigt, wenn ich versuche, es zu meinem hinzufügen: Not an editor command: SyntasticEnable python).Kann nicht "Syntastic" Vim-Plugin zu arbeiten

Wie kann ich wissen, was vor sich geht? Syntastic zeigt keine Fehler an, wenn ich es von vim aus anrufe. Zeigt der erste Fehler (not and editor command in meinem .vimrc) etwas an, von dem ich nichts weiß?

Ich habe in meinem .vimrc:

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

Ich habe einen python.vim in ~/.vim/syntax_checkers auch. Ich kann bereits Pyflakes für Python-Dateien verwenden, es funktioniert GREAT aber ich hätte gerne syntastische Funktionalität in anderen Dateien/Erweiterungen, die ich bei der Entwicklung von Anwendungen benötigen.

Antwort

5

Ist pyflakes auf Ihrem Umgebungspfad? Wenn dies nicht der Fall ist, müssen Sie es zu Ihrem Pfad hinzufügen oder Syntax \ checkers \ python.vim ändern und den vollständigen Pfad zur Binärdatei hinzufügen. Es gibt zwei Linien, die Sie ändern müssen:

if !(executable("pyflakes")) 

und auch

let makeprg = 'pyflakes %' 

In meinem Fall. Ich wollte, dass Syntastic mit PHP auf meinem Windows-Rechner funktioniert. So hatte ich die zwei ähnliche Linien in php.vim zu ändern zu sein:

let s:php_executable = "C:\\Uniserver\\usr\\local\\php\\php.exe" 
if !(executable(s:php_executable)) 

und

let makeprg = php_executable . " -l %" 

Wenn Ihr Pfad Leerzeichen enthält, werden Sie sie in doppelte Anführungszeichen umgeben müssen in der Variablen makeprg. Auch bei html.vim müssen die einfachen Anführungszeichen in makeprg durch doppelte Anführungszeichen ersetzt werden (Sie müssen alles darin zurückgeben).

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) 

und

let makeprg="\"".s:tidyexe."\" -e % 2>&1 \\| \"".s:grepexe."\" -v \"\<table\> lacks \\\"summary\\\" attribute\"" 
+0

ich Linux bin mit, soll nicht out-of-box arbeiten? Haben Sie versucht, in Ihrer .vimrc "SyntasticEnable" zu verwenden und zu prüfen, ob Sie den gleichen Fehler erhalten wie ich? –

+0

Es sollte "out of the box" funktionieren, wenn Sie pyflakes ohne einen expliziten Pfad ausführen, d. H. Einfach "pyflakes myfile" im Terminal eingeben.(Ich verwende SyntasticEnable nicht in meiner _vimrc-Datei, weil das den gleichen Fehler hat wie du.) Mit welchem ​​Dateityp verwendest du syntastic? Sie haben möglicherweise nicht die erforderlichen Binärdateien, d. H. HTML erfordert ordentlich und Javascript erfordert jsl. – James

+0

pyflakes funktioniert, ich habe Probleme mit syntastischen. Ich werde nach den Binärdateien suchen, die du sagst. Vielen Dank! –

1

Haben Sie versucht, um sicherzustellen, dass Vim den richtigen Wert für $ PATH hat?

:echo $PATH 

Wenn nicht, versuchen Sie dies in Ihrem .vimrc setzen:

let $PATH=substitute(system("echo \$PATH"), "\r\*\n", "", "g") 

dann Herunterfahren und Neustarten vim. Wenn es funktioniert, müssen Sie die Quelldateien des Plugins nicht manuell aktualisieren, um den Pfad zu den ausführbaren Dateien manuell einzufügen.

(fanden diese über: https://superuser.com/questions/380535/getting-man-path-through-vim)