Ruby on rails 在Vim的状态栏中显示导轨测试的状态?
是否有任何已知的Vim插件可以通过分别显示绿色或红色条来显示Rails测试是通过还是失败。我个人觉得咆哮通知很让人分心,我正在寻找替代方案,但什么也找不到Ruby on rails 在Vim的状态栏中显示导轨测试的状态?,ruby-on-rails,vim,Ruby On Rails,Vim,是否有任何已知的Vim插件可以通过分别显示绿色或红色条来显示Rails测试是通过还是失败。我个人觉得咆哮通知很让人分心,我正在寻找替代方案,但什么也找不到 编辑:我正在OSX 10.6上使用MacVim您是否尝试过自动测试::屏幕 我不是一个喜欢红宝石的人,但窍门并没有那么复杂。 您需要做的就是检测特定项目目录下的文件更改,运行测试,然后将测试结果带回屏幕的状态栏。这就是我在$VIMFILES/ftplugin/python/tests.vim文件中的内容: function! RunAllTe
编辑:我正在OSX 10.6上使用MacVim您是否尝试过
自动测试::屏幕
我不是一个喜欢红宝石的人,但窍门并没有那么复杂。
您需要做的就是检测特定项目目录下的文件更改,运行测试,然后将测试结果带回屏幕的状态栏。这就是我在
$VIMFILES/ftplugin/python/tests.vim文件中的内容:
function! RunAllTests(args)
silent ! echo -e "\033[1;36mRunning all unit tests\033[0m"
if filereadable(getcwd() . "/runtests.py")
set makeprg=./runtests.py\ --with-machineout
elseif filereadable(getcwd() . "/manage.py") && filereadable(getcwd() . "/settings.py")
set makeprg=./manage.py\ test\ --with-machineout\ --verbosity=0
else
set makeprg=nosetests\ --with-machineout
endif
exec "make! " . a:args
endfunction
function! JumpToError()
if getqflist() != []
for error in getqflist()
if error['valid']
break
endif
endfor
let error_message = substitute(error['text'], '^ *', '', 'g')
silent cc!
if error['bufnr'] != 0
exec ":sbuffer " . error['bufnr']
endif
call RedBar()
echo error_message
else
call GreenBar()
echo "All tests passed"
endif
endfunction
function! RedBar()
hi RedBar ctermfg=white ctermbg=red guibg=red
echohl RedBar
echon repeat(" ",&columns - 1)
echohl None
endfunction
function! GreenBar()
hi GreenBar ctermfg=white ctermbg=green guibg=green
echohl GreenBar
echon repeat(" ",&columns - 1)
echohl None
endfunction
let maplocalleader=","
nmap <LocalLeader>a :call RunAllTests("--machine-out")<cr>:redraw<cr>:call JumpToError()<cr>
nmap <LocalLeader>A :call RunAllTests("")<cr>
函数!运行所有测试(args)
安静!echo-e“\033[1;36M运行所有单元测试\033[0m”
如果文件可读(getcwd()。“/runtests.py”)
设置makeprg=./runtests.py \--带machineout
elseif filereadable(getcwd().“/manage.py”)和&filereadable(getcwd().“/settings.py”)
设置makeprg=./manage.py\test \--带有machineout \--详细性=0
其他的
设置makeprg=nosetests \--使用machineout
恩迪夫
执行官“制造!”。答:args
端功能
函数!JumpToError()
如果getqflist()!=[]
对于getqflist()中的错误
如果错误['valid']
打破
恩迪夫
外循环
let error_message=替换(错误['text']、'^*'、''g')
无声抄送!
如果错误['bufnr']!=0
exec“:sbuffer”.error['bufnr']
恩迪夫
调用RedBar()
回显错误信息
其他的
调用GreenBar()
回显“所有测试通过”
恩迪夫
端功能
函数!RedBar()
hi RedBar ctermfg=白色ctermbg=红色GUI=红色
echohl红条
echon重复(“,”列和列-1)
无回声
端功能
函数!GreenBar()
hi-GreenBar ctermfg=白色ctermbg=绿色guibg=绿色
埃科绿吧
echon重复(“,”列和列-1)
无回声
端功能
让maplocalleader=“,”
nmap a:调用RunAllTests(“--machine out”):重画:调用JumpToError()
nmap A:调用RunAllTests(“”)
我最初基于Gary的.vimrc,然后移动了一些东西并重新编码了显示条的方法
我确信它可以很容易地适应ruby以及它在测试运行中使用的任何东西(我不是ruby的家伙)
希望能有帮助!这是Gary的屏幕广播吗?我实际上编写了他用来显示彩色条的例程。我一回到电脑就会将其作为答案发布。是的,这是Gary Bernhardt在Python视频中令人敬畏的字符串计算器kata。非常感谢!我在OSX 10.6上使用MacVim。我应该早点提到这一点,我的错误。因此,无法使用屏幕。非常感谢!我将查看它!