Friday, January 22, 2010

buftabs message overwritten in the command-line area

The buftabs script [1] shows a handy tabs-like list of buffers in the
in the command-line area with brackets enclosing the currently viewed
buffer like so:

[1-file1.txt] 2-file2.txt2 3-file3.txt

Unfortunately there's a Bug:

" Vim's 'set hidden' option is known to break this plugin - for some
" reason vim will overwrite the buftabs when this option is enabled.

After cycling through all the buffers, the buftabs no longer get
displayed, being overwritten with file messages like:

"file1.txt" 124 lines --67%-- (1 of 3)

The closest solution I could find is from the Vim Tip "Make echo seen
when it would otherwise disappear and go unseen" [2], which suggests:

let PechoLock = 0
fu! s:Pecho(msg)
wh islocked("g:PechoLock")|sl|endw
lockv g:PechoLock|let s:hold_ut=&ut|let &ut=1
let s:Pecho=a:msg
aug Pecho
au CursorHold * ec s:Pecho
\|let &ut=s:hold_ut|unlo g:PechoLock
\|aug Pecho|exe 'au!'|aug END|aug! Pecho
aug END
endf

But I'm not sure how to implement this in the buftabs plugin...or if
perhaps there's a better approach.

Buftabs.vim works fine with 'set nohidden', but I'd really like to
keep 'set hidden'. There's also the option to place buftabs in the
statusline, but I much prefer the elegant space-saving display in
the command-line area.

[1] http://www.vim.org/scripts/script.php?script_id=1664
[2] http://vim.wikia.com/wiki/Make_echo_seen_when_it_would_otherwise_disappear_and_go_unseen

TIA for any help,

John


--
John Magolske
http://B79.net/contact

--
You received this message from the "vim_use" maillist.
For more information, visit http://www.vim.org/maillist.php

No comments: