vimconsole.vim を使ってみた。


と、いうことで rbtnn さんの作成したプラグインなのですがいくつか希望した機能が実装されたので手元で使いやすく設定してみました。

function! s:capture(cmd)
    redir => result
        silent execute a:cmd
    redir END
    return result
endfunction


" 元のコマンドだとちょっと長かったのでラップして短縮
command! -nargs=1 -complete=expression Clog call Clog(<q-args>) | VimConsoleOpen

" : から始まればコマンドとして、! から始まれば外部コマンドの結果を出力
function! Clog(expr)
    if a:expr[0] ==# ':'
        call vimconsole#log(s:capture(a:expr))
    elseif a:expr[0] ==# '!'
        call vimconsole#log(system(a:expr[1:]))
    else
        call vimconsole#log(a:expr)
    endif
endfunction

" ハイライトの prefix を無効
let g:vimconsole#plain_mode=1

" ウィンドウの高さを設定
let g:vimconsole#height=10


こんな感じ。
:VimConsoleLog に

:Clog :mes

:Clog !ls

みたいにコマンドや外部コマンドを渡したかったのでごにょごにょとラップしています。
しばらくは一時的な出力バッファとして使ってみようと思っています。