3

Rails テストが成功したか失敗したかをそれぞれ緑色または赤色のバーで表示する既知の Vim プラグインはありますか。私は個人的に、Growl の通知が非常に気を散らしていると感じており、代替手段を探していますが、何も見つかりません。これに似た何かが私が目指しているものです。.

編集:OSX 10.6でMacVimを使用しています

4

2 に答える 2

0

これは私が私の$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>

私はもともとGaryの.vimrcに基づいており、次にいくつかのものを移動して、バーを表示するメソッドを再コーディングしました。

私はそれがルビーとそれがテスト実行に使用するものなら何でも簡単に適応できると確信しています(私はルビーの男ではありません)。これは現在、Pythonテストを実行するためにnosetestsを使用しています。

お役に立てば幸いです。

于 2012-07-11T14:18:43.837 に答える