Tony Mechelynck wrote:

> On 19/03/09 13:08, Yakov Lerner wrote:
>>
>> On Tue, Mar 17, 2009 at 12:41, Yakov Lerner<iler...@gmail.com>  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
-~----------~----~----~----~------~----~------~--~---

Raspunde prin e-mail lui