On Saturday, April 28, 2012 12:39:51 AM UTC+2, Tony Mechelynck wrote:
> On 27/04/12 23:41, rameo wrote:
> > On Friday, April 27, 2012 8:29:03 PM UTC+2, Tony Mechelynck wrote:
> >> On 27/04/12 18:34, rameo wrote:
> >>> On Friday, April 27, 2012 6:18:29 PM UTC+2, Ben Fritz wrote:
> >>>> On Friday, April 27, 2012 10:56:55 AM UTC-5, rameo wrote:
> >>>>> I use this code in my .vimrc to use my dark colorscheme when I open a 
> >>>>> .vim page and my light colorscheme when I open whatever other page:
> >>>>>
> >>>>> augroup filetype_colorscheme
> >>>>>           au BufEnter *
> >>>>>           \ if !exists('b:colors_name')
> >>>>>               \ | if &ft == "vim"
> >>>>>                   \ | let b:colors_name = 'color_dark'
> >>>>>               \ | else
> >>>>>                   \ | let b:colors_name = 'color_light'
> >>>>>               \ | endif
> >>>>>           \ | endif
> >>>>>           \ | exe 'colorscheme' b:colors_name
> >>>>> augroup END
> >>>>>
> >>>>> However, it doesn't work fine in split windows.
> >>>>> When I click on a .vim file in the split window all not .vim files 
> >>>>> changes to the dark colorscheme as well.
> >>>>> I would like to keep them their own colorscheme; a .vim page always the 
> >>>>> dark colorscheme and whatever other file always the light colorscheme.
> >>>>>
> >>>>> I've learned that colorschemes will always affect the entire vim 
> >>>>> instance and that it is not possible to have a different color scheme 
> >>>>> per split window.
> >>>>>
> >>>>> In that point I would like to disable above code for split windows in 
> >>>>> order to give all split windows the default colorscheme (which I can 
> >>>>> change afterwards using :color "colorscheme") but don't know how to 
> >>>>> realize this. Whatever I tried didn't do what I want it to do.
> >>>>> Can anyone help me?
> >>>>
> >>>> You can check the number of windows with winnr('$'). If > 1, you have 
> >>>> multiple split windows.
> >>>
> >>> Hi Ben,
> >>>
> >>> That's what I tried.
> >>> But wherever I put it in above code it doesn't work.
> >>> Where would you place this in above code?
> >>>
> >>
> >> Around your autocommand:
> >>
> >> augroup filetype_colorscheme
> >>       au BufEnter *
> >>           \ if winnr('$') == 1
> >>               \ | if !exists('b:colors_name')
> >>                   \ | if &ft == "vim"
> >>                       \ | let b:colors_name = 'color_dark'
> >>                   \ | else
> >>                       \ | let b:colors_name = 'color_light'
> >>                   \ | endif
> >>               \ | endif
> >>               \ | exe 'colorscheme' b:colors_name
> >>           \ | else
> >>               \ | colorscheme default
> >>           | | endif
> >> augroup END
> >>
> >> or (maybe more readable)
> >>
> >> function SetColors()
> >>    if exists('b:colors_name')
> >>            exe 'colorscheme' b:colors_name
> >>            return
> >>    endif
> >>    if winnr('$') > 1
> >>            colorscheme default
> >>    elseif &ft == 'vim'
> >>            colorscheme color_dark
> >>    else
> >>            colorscheme color_light
> >>    endif
> >>    let b:colors_name = g:colors_name
> >> endfunction
> >> augroup filetype_colorscheme
> >>    au BufEnter * call SetColors()
> >> augroup END
> >>
> >> This way, the autocommand will be defined unconditionally, but if it
> >> finds that at BufEnter three are more than one window in the current tab
> >> it will go back to the default scheme.
> >>
> >>
> >> Best regards,
> >> Tony.
> >> --
> >> Actor:     So what do you do for a living?
> >> Doris:     I work for a company that makes deceptively shallow serving
> >>    dishes for Chinese restaurants.
> >>            -- Woody Allen, "Without Feathers"
> >
> > Thank you very much.
> >
> > Just one little thing..
> >
> > What I noted is that when I have a split window it gives the default 
> > colorscheme (that's ok) but I would like to have the possibility to change 
> > the colorscheme of all split buffers in a window with the :color 
> > "colorscheme" command (and if possible keep this colorscheme when I switch 
> > from one Tab to another and back to the split window or when I click in 
> > another split buffer in the split window.
> > (when I have multiple .vim files in the split window I prefer the dark 
> > colorscheme, when I have multiple .txt files in the split, I prefer the 
> > light colorscheme. That isn't possible now. When I use :color "colorscheme" 
> > and click in another split window all other split windows changes again to 
> > the default colorscheme)
> >
> > Is it possible to do?
> >
> 
> Well, it is possible, with a slight refinement to the above. You may 
> want to remember the Vim terminology:
> 
> - buffer: one file (or file-like data) in Vim memory, with the relevant 
> metadata. It may be displayed in zero or more windows.
> - window: a viewport into a buffer. If several windows display the same 
> buffer, changes made in one are reflected in all others. Also, if 
> several windows display the same buffer, the displayed regions of that 
> buffer may or may not overlap.
> - tab page: a set of one or more windows which are displayed at the same 
> time.
> 
> "another split buffer in a split window" has no meaning. Maybe you meant 
> "another window in the current tab"?
> 
> You can use variables with different scopes:
> 
> b:something   local to a buffer
> g:something   global to all Vim
> l:something   local to a function
> s:something   local to a script
> t:something   local to a tab page
> v:something   predefined at compile-time
> w:something   local to a window
> 
> With no prefix it falls back to v: for compatibility for a few 
> predefined names, otherwise l: if inside a function, otherwise g:
> 
> See also the help for the following functions:
> 
> bufname()
> bufnr()
> bufwinnr()
> tabpagebuflist()
> tabpagenr()
> tabpagewinnr()
> winbufnr()
> winnr()
> 
> See also |setting-tabline| for an example of how to use these functions 
> (albeit for a different purpose).
> 
> 
> Best regards,
> Tony.
> -- 
> Ten million Linux users can't be wrong!

Yes I mean another window in the current tab.
But after an hour of reading help-files I don't have an idea how to adapt the 
script, sorry.

-- 
You received this message from the "vim_use" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

Reply via email to