Tony Mechelynck wrote:
> On 19/03/09 13:08, Yakov Lerner wrote:
>>
>> On Tue, Mar 17, 2009 at 12:41, Yakov Lerner<[email protected]> wrote:
>>> We have separae highlighting, StatusLineNC, for non-current.
>>> I wish I had different *format*, too, for noncurrent statusline. I do not
>>> think differnt format for non-current statusline is supported.
>>> Is it possible to put this request in todo. Thanks.
>>
>> Found how to make it in current vim.
>> Sorry for the noise. Took me time to figure it, works fine.
>>
>> let&statusline="Your favourite statusline"
>> let g:Active_statusline=&g:statusline
>> let g:NCstatusline = "%<%F" " non-current statusline
>> au WinEnter * let&l:statusline = g:Active_statusline
>> au WinLeave * let&l:statusline = g:NCstatusline
>>
>> Yakov
>
> Wow! Hadn't realized it was global-local. :thumbsup:
>
> Best regards,
> Tony.
Agreed, that's quite a nice tip.
I ended up using it to change the colors of the active vs inactive
statusline in my already fancy statusline settings:
" Colors of active statusline
hi User1 guifg=#66ff66 guibg=#008000 gui=bold term=standout
cterm=bold ctermfg=lightgreen ctermbg=lightgreen
hi User2 guifg=#ffff60 guibg=#008000 gui=bold term=none cterm=bold
ctermfg=yellow ctermbg=lightgreen
" Colors or inactive statusline
hi User3 guifg=#66ff66 guibg=#008000 gui=bold term=standout
cterm=bold ctermfg=lightgreen ctermbg=lightgreen
hi User4 guifg=#66ff66 guibg=#008000 gui=bold term=none cterm=bold
ctermfg=lightgreen ctermbg=lightgreen
" Function used to display syntax group.
function! SyntaxItem()
return synIDattr(synID(line("."),col("."),1),"name")
endfunction
" Function used to display utf-8 sequence.
function! ShowUtf8Sequence()
let p = getpos('.')
redir => utfseq
sil normal! g8
redir End
call setpos('.', p)
return substitute(matchstr(utfseq, '\x\+ .*\x'), '\<\x', '0x&', 'g')
endfunction
if has('statusline')
if version >= 700
" Fancy status line.
set statusline =
set statusline+=%#User1# " highlighting
set statusline+=%-2.2n\ " buffer number
set statusline+=%#User2# " highlighting
set statusline+=%f\ " file name
set statusline+=%#User1# " highlighting
set statusline+=%h%m%r%w\ " flags
set statusline+=%{(&key==\"\"?\"\":\"encr,\")} " encrypted?
set statusline+=%{strlen(&ft)?&ft:'none'}, " file type
set statusline+=%{(&fenc==\"\"?&enc:&fenc)}, " encoding
set statusline+=%{((exists(\"+bomb\")\ &&\ &bomb)?\"B,\":\"\")} " BOM
set statusline+=%{&fileformat}, " file format
set statusline+=%{&spelllang}, " spell language
set statusline+=%{SyntaxItem()} " syntax group under cursor
set statusline+=%= " indent right
set statusline+=%#User2# " highlighting
set statusline+=%{ShowUtf8Sequence()}\ " utf-8 sequence
set statusline+=%#User1# " highlighting
set statusline+=0x%B\ " char under cursor
set statusline+=%-6.(%l,%c%V%)\ %<%P " position
" Use different colors for statusline in current and non-current window.
let g:Active_statusline=&g:statusline
let g:NCstatusline=substitute(
\ substitute(g:Active_statusline,
\ 'User1', 'User3', 'g'),
\ 'User2', 'User4', 'g')
au WinEnter * let&l:statusline = g:Active_statusline
au WinLeave * let&l:statusline = g:NCstatusline
endif
endif
--~--~---------~--~----~------------~-------~--~----~
You received this message from the "vim_dev" maillist.
For more information, visit http://www.vim.org/maillist.php
-~----------~----~----~----~------~----~------~--~---