在vim中进行Ruby语法检查

时间:2009-08-19 20:58:27

标签: ruby-on-rails ruby vim

我使用vim和各种插件来编辑ruby代码。我有正确的语法高亮设置,但我想知道是否有人知道如何获得ruby语法检查,类似于您在IDE,如visual studio,radrails等中可能会看到的?

当我错过一个'结束'或者有一个不正确构造的代码行时,只会把东西变成红色或突破突出显示的东西会很甜蜜。

我用谷歌搜索并看到了这个插件,http://github.com/scrooloose/syntastic/tree/master但是我想知道是否有人有更好的建议。

6 个答案:

答案 0 :(得分:23)

您可以在ruby中语法检查当前缓冲区而无需下载任何插件。命令是:

:w !ruby -c

答案 1 :(得分:12)

awesome_person是对的,":w !ruby -c"会做的。为了更方便,在〜/ .vimrc中添加这一行:

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

然后按F9键检查语法。

答案 2 :(得分:8)

我认为现有的答案已经过时了。现在vim带有一个ruby编译器插件,所以 现在需要做的只是运行:compiler ruby,或者将此命令添加到~/.vim/ftplugin/ruby.vim文件中(必要时创建它) 。然后,不仅会运行:make语法检查您的代码,它会将您置于vim quickfix mode中,使您能够直接跳转到错误。

我说“应该”因为编译器插件错过了一点而没有合理地设置makeprg。这是我实际放在~/.vim/ftplugin/ruby.vim中的内容:

compiler ruby
setlocal makeprg=ruby\ -wc\ %

suggested这是默认值。

答案 3 :(得分:0)

只要您保留一些格式限制,rails.vim插件就可以实现出色的语法突出显示功能。将此与自动缩进(ggVG =)相结合,您应该能够了解文档是否格式正确。

答案 4 :(得分:0)

似乎有几个人尝试过这个,但没有人尝试过太多。我个人建议在单独的终端窗口中使用自动测试。

Try this,如果您只是想要syntex错误。

如果您想要在运行时发生错误,可以like this instead.

答案 5 :(得分:0)

使用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)都会执行编译。