我使用vim和各种插件来编辑ruby代码。我有正确的语法高亮设置,但我想知道是否有人知道如何获得ruby语法检查,类似于您在IDE,如visual studio,radrails等中可能会看到的?
当我错过一个'结束'或者有一个不正确构造的代码行时,只会把东西变成红色或突破突出显示的东西会很甜蜜。
我用谷歌搜索并看到了这个插件,http://github.com/scrooloose/syntastic/tree/master但是我想知道是否有人有更好的建议。
答案 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)都会执行编译。