俺が見たいのはメッセージの最後なんだ!:messagesを便利にするVimプラグイン
Vim Advent Calendar 2012 330日目の記事です。
Vimでエラーが発生した時にメッセージが表示されます。
そのメッセージを後から確認したい場合は:messages
でメッセージ履歴を表示します。
しかし:messages
にはVimが起動してからのメッセージが蓄積されているので、長時間起動しているとメッセージが長くなってしまい、最後の方にある目当てのメッセージを表示するためにスクロールさせるのが苦痛になってきます。
知りたいのはエラーが発生してからのメッセージ数行だけでいいのに、200のメッセージをスクロールしなければいけないかもしれないのです。
見ることのできるメッセージ数は、tiny バージョンでは20に、それ以外のバージョン
では200に固定されている。
(:help :messages
より引用)
このメッセージは蓄積される数を変更することも出来ないし、消去することも出来ません*1。非常に不便です。
前々からフラストレーションを感じていたので、こんなのを作りました。
NeoBundle 'LeafCage/lastmess.vim'
これを使えば、
:LastMess
で、デフォルトで最後の10行のメッセージが表示されます。
:LastMess 12
または
:12LastMess
というように数値を与えてやると、最後の与えられた数字行のメッセージ(この場合は最後の12行)が表示されます。
表示される行のデフォルト値は10ですが、g:lastmess_default_count
で変更することが可能です。
let g:lastmess_default_count = 15
<Plug>(lastmess)
はキーマップ版です。例えばこれを
nmap mz <Plug>(lastmess)
というキーに充てておきますと、mz
でデフォルトの10行のメッセージが表示されます。
15mz
のようにカウントを与えると、その行数分のメッセージが表示されます。
カウントに999などの大きな数値を与えた場合は、メッセージが最初から表示されます(:messages
と同じですね。)。
これで:messages
を見るストレスが軽減され、特にプラグイン制作者は捗ることでしょう。