Pull to refresh

Syntastic. Плагин для невнимательных и многоязычных

VIM *

Мотивация


Как часто вы, написав код, запускаете его и видите сообщение о синтаксической ошибке? Я часто. А как часто, найдя и исправив эту ошибку, вы вновь, запуская код, видите похожее сообщение?
Я часто…
Причин тому несколько:
  • я очень невнимательный
  • я пишу на многих языках


И еще ничего, если это просто какой-то скриптик или страничка и воспроизвести код быстро. А если это нечто, что бы его воспроизвести требует что-то там перезапустить, где-то там выйти/зайти и т.д. и т.п.

Я это терпел и пытался быть внимательным пересматривая код перед запуском. Но иногда и это не помогало. Файлы с исходниками бывают длинными и потерять одну другую скобочку бывает не сложно.

Варианты


Для каждого языка в отдельности возможно есть под vim плагин решающий эту проблему. Например для js есть куча симпатичных оберток для jslint. Но все это не универсально и привыкнув не перечитывать js-код забываешь делать это для ruby… Можно конечно поставить много плагинов для проверки синтаксиса — и это есть наиболее простой выход, но при одном условии…

Решение


А условие это таково: Вы не знаете что есть syntastic.
Плагин рабочий, но как показывает практика не каждый начинающий vim-ер может начать его использовать(причиной тому опять таки невнимательность и излишняя ненастойчивость). Поэтому я и пишу эту маленькую статейку.
Итак для начала установка:

git clone github.com/scrooloose/syntastic.git
cd syntastic
rake install
#или если у вас не уствновлен ruby
сp -r * ~/.vim/

По умолчанию плагин ничего не делает. И самое простое что можно сделать что бы работа плагина стала видна — добавить в .vimrc команду:

let g:syntastic_enable_signs=1
и перезапустить vim (важно именно добавить настройку в .vimrc и презапустить vim). Ошибки и предупреждения будут отмечены символами >> на красном и желтом фонах соответственно, по левой стороне от кода. Для чтения сообщения об ошибке надо ввести :Errors. Неудобство состоит в том что окошко Errors не обновляется когда вы перезаписываете буфер и для его обновления нужно будет опять набрать комманду :Errors.

Дальше


Внимание: проверка js-кода не будет работать до тех пор пока вы не скопируете бинарник скачанный с www.javascriptlint.com/download.htm в любую папку прописанную в вашем PATH.

И не забываем читать документацию в vim: :h syntastic

Решение проблем с плагином


Для некоторых языков плагин не показывает маркеры слева от строки с ошибкой. Для такого случая есть в syntastic statusline flag — это еще один способ увидеть результаты работы плагина. Фишка эта подробно описана по :h syntastic-statusline-flag

Проверка синтаксиса shell скриптов может из коробки не заработать. Самое простое решение в таком случае добавить в .vimrc строчку let b:shell = 'sh' или let b:shell = 'bash'. После этого могут не работать маркеры, но syntastic statusline упомянутый выше сообщает об ошибках в коде.
Tags:
Hubs:
Total votes 23: ↑21 and ↓2 +19
Views 7K
Comments Comments 19