2010-07-23 3 views
17

Я установил Syntastic плагин в vim. Я не могу заставить его работать. Я пробовал :SyntasticEnable, но не повезло. SyntasticEnable python in my vimrc тоже не работает (на самом деле, он даже не анализирует команду, появляется ошибка, когда я пытаюсь добавить его в мой .vimrc: Not an editor command: SyntasticEnable python).Не удается получить «Syntastic» vim плагин для работы

Как я могу узнать, что происходит? Syntastic не показывает ошибок, когда я вызываю это из vim. Первая ошибка (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 

У меня есть python.vim в ~/.vim/syntax_checkers, а также. Я уже могу использовать Pyflakes для файлов python, он работает GREAT, но я хотел бы иметь функциональность Syntastic в других файлах/расширениях, которые мне нужны при разработке приложений.

ответ

5

pyflakes на вашем пути к окружающей среде? Если это не так, то вы должны добавить его в свой путь или изменить синтаксис \ checkers \ python.vim и добавить полный путь к двоичному. Есть две линии, которые вы должны изменить:

if !(executable("pyflakes")) 

, а также

let makeprg = 'pyflakes %' 

В моем случае. Я хотел, чтобы Syntastic работал с PHP на моей Windows-машине. Так что мне пришлось изменить эти две аналогичные линии в 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, не должен работать вне коробки? Вы пытались использовать «SyntasticEnable» в своем .vimrc и проверить, не получите ли вы такую ​​же ошибку, как я? –

+0

Он должен работать «из коробки», если вы запускаете pyflakes без явного пути, т. Е. Просто введите «pyflakes myfile» в терминале.(Я не использую SyntasticEnable в моем файле _vimrc, потому что он получает ту же ошибку, что и вы.) В каком типе файла вы используете синтаксис для проверки? У вас могут не быть требуемые двоичные файлы, т. Е. HTML требует аккуратности, а Javascript требует jsl. – James

+0

pyflakes работает, у меня проблемы с синтаксисом. Я собираюсь искать двоичные файлы, о которых вы это говорите. Благодаря! –

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)