Проверка синтаксиса Ruby в vim - PullRequest
14 голосов
/ 20 августа 2009

Я использую vim с различными плагинами для редактирования кода ruby. У меня настроена правильная подсветка синтаксиса, но мне было интересно, знает ли кто-нибудь, как получить синтаксис ruby ​​ check , похожий на тот, который вы могли бы видеть в среде IDE, такой как visual studio, radrails и т. Д.?

Что-то, что просто покраснело бы или сломало подсветку, когда я пропускаю «конец» или у меня неправильно сконструированная строка кода, было бы приятно.

Я гуглил и наткнулся на этот плагин, http://github.com/scrooloose/syntastic/tree/master, но мне было интересно, есть ли у кого-нибудь лучшие предложения.

Ответы [ 6 ]

23 голосов
/ 25 марта 2010

Вы можете синтаксически проверить текущий буфер в ruby, не загружая никаких плагинов. Команда:

:w !ruby -c
12 голосов
/ 31 января 2012

awesome_person прав, ":w !ruby -c" подойдет. Чтобы сделать это более удобным, добавьте эту строку в ваш ~ / .vimrc:

autocmd FileType ruby map <F9> :w<CR>:!ruby -c %<CR>

Затем синтаксис проверяется нажатием клавиши F9.

8 голосов
/ 22 июня 2013

Я думаю, что существующие ответы устарели. Плагин ruby ​​compiler поставляется вместе с vim, поэтому все, что вам нужно сейчас нужно сделать, - это запустить :compiler ruby или добавить эту команду в ваш файл ~/.vim/ftplugin/ruby.vim (создавая его при необходимости). Тогда не только запущенный :make синтаксис проверит ваш код, но и переведет вас в режим быстрого исправления vim , что позволит вам сразу перейти к ошибкам.

Я говорю "должен", потому что плагин компилятора немного пропускает точку и не устанавливает makeprg разумно. Вот что я на самом деле вставил в ~/.vim/ftplugin/ruby.vim:

compiler ruby
setlocal makeprg=ruby\ -wc\ %

Я предложил , чтобы это было по умолчанию.

0 голосов
/ 23 августа 2009

Проверьте, используя плагин CTK: http://www.vim.org/scripts/script.php?script_id=2618

и попробуйте это в вашем .vimrc:

" Compile Ruby code after writing (show warnings/errors)
function! Compile()
  " don't compile if it's an Rspec file (extra warnings)
  let name = expand('<afile>')
  if name !~ 'spec'
    CC
  endif
endfunction
autocmd BufWritePost *.rb call Compile()

Это (с помощью ctk.vim) будет выполнять компиляцию каждый раз, когда файл сохраняется.

0 голосов
/ 22 августа 2009

Похоже, что несколько человек пробовали это, но никто не пытался слишком сильно. Лично я рекомендую использовать автотест в отдельном окне терминала.

Попробуйте это , если вы просто хотите синтаксические ошибки.

Если вы хотите, чтобы ошибки также возникали во время выполнения, вам может понравиться как это.

0 голосов
/ 20 августа 2009

Плагин rails.vim обеспечивает отличную подсветку синтаксиса, если вы не выходите за рамки его форматирования. Сопоставьте это с автоматическим отступом (ggVG =), и вы сможете получить общее представление о том, правильно ли сформирован документ или нет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...