ハイパーマッスルエンジニア

Vim、ShellScriptについてよく書く

VimでmessagesやhighlightなどのExコマンドの結果を別タブで開く

f:id:rasukarusan:20210919130720p:plain

:tabe
:put = execute('messages')

めちゃくちゃシンプル。
今まで下記のようなredirを利用した関数を作って実行していたけど、完全に不要だった。

function! s:show_ex_result(cmd)
  redir => message
  silent execute a:cmd
  redir END
  if empty(message)
    echoerr "no output"
  else
    tabnew
    setlocal buftype=nofile bufhidden=wipe noswapfile nobuflisted nomodified
    silent put=message
    normal gg
  endif
endfunction
command! -nargs=+ -complete=command ShowExResult call s:show_ex_result(<q-args>)
:ShowExResult messages

参考

vim.blue

終わり

てか結局このモードの名前なんなん....