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?

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