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