On Sat, Mar 21, 2009 at 11:22, Dominique Pelle <[email protected]>wrote:

>
> 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


Different highlighting for non-active statusline is trivial due to
'hi StatusLineNC', as opposed to different contents/format of statusline.
But I've got to try out your statusline code. It's hideousest statusline
I've seen.

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

Raspunde prin e-mail lui