Vimには:messages
や:scriptnames
、:map
など、現在のステータスメッセージを出力するコマンドがたくさんあります。
たとえば、現在のバッファ固有のキーマップを確認するためには、:map <buffer>
などが便利ですし、&runtimepath
を確認したり、環境変数を確認するため、:echo
を利用するシーンは多々あるかと思います。
しかし、これらのコマンドは結果をメッセージ行に表示するため、通常のウィンドウのように操作をすることができず、表示行数が多い場合には、目的のものを探すのがつらいです。
また、コピペをする場合にも、マウスを使って選択した後で<C-y>
したりする必要があったり、なにかと不便です。
ですので、これらメッセージの出力をVimのバッファに出力できると便利です。
それ専用にプラグインが作成されたりしていますが(*1,*2)、
ここでは、みんなだいすき QuickRun を利用して、実現します。
QuickRun vim-src 'messages'
これだけだと味気ないので、もう一工夫します。
command!-nargs=+-complete=command Capture QuickRun -type vim-src <q-args>
これで、Exコマンドのコマンドライン補完のサポートつきで、キャプチャするコマンドを定義しました。:Capture
の後、<TAB>
を押す事で、コマンドを補完することができます。
" メッセージを確認する
Capture messsages
" スクリプトのロード履歴を確認する
Capture scriptnames
" 現在のバッファにマップされているキーマップを確認する
Capture map <buffer>" 環境変数`$PATH`を1エントリ1行にばらして確認する" 1. Windows
Capture echo tr($PATH,";","\n")" 2. bash
Capture echo tr($PATH,":","\n")