Ruby on rails 在Vim的状态栏中显示导轨测试的状态?

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

是否有任何已知的Vim插件可以通过分别显示绿色或红色条来显示Rails测试是通过还是失败。我个人觉得咆哮通知很让人分心,我正在寻找替代方案,但什么也找不到


编辑:我正在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。我应该早点提到这一点,我的错误。因此,无法使用屏幕。非常感谢!我将查看它!