Account Options

  1. Sign in
The old Google Groups will be going away soon, but your browser is incompatible with the new version.
Google Groups Home
« Groups Home
Colorschemes and split window
There are currently too many topics in this group that display first. To make this topic appear first, remove this option from another topic.
There was an error processing your request. Please try again.
flag
  13 messages - Collapse all  -  Translate all to Translated (View all originals)
The group you are posting to is a Usenet group. Messages posted to this group will make your email address visible to anyone on the Internet.
Your reply message has not been sent.
Your post was successful
 
From:
To:
Cc:
Followup To:
Add Cc | Add Followup-to | Edit Subject
Subject:
Validation:
For verification purposes please type the characters you see in the picture below or the numbers you hear by clicking the accessibility icon. Listen and type the numbers you hear
 
rameo  
View profile  
 More options Apr 27 2012, 11:56 am
From: rameo <rai...@gmail.com>
Date: Fri, 27 Apr 2012 08:56:55 -0700 (PDT)
Local: Fri, Apr 27 2012 11:56 am
Subject: Colorschemes and split window

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 must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Ben Fritz  
View profile  
 More options Apr 27 2012, 12:18 pm
From: Ben Fritz <fritzophre...@gmail.com>
Date: Fri, 27 Apr 2012 09:18:29 -0700 (PDT)
Local: Fri, Apr 27 2012 12:18 pm
Subject: Re: Colorschemes and split window

You can check the number of windows with winnr('$'). If > 1, you have multiple split windows.

 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
rameo  
View profile  
 More options Apr 27 2012, 12:34 pm
From: rameo <rai...@gmail.com>
Date: Fri, 27 Apr 2012 09:34:53 -0700 (PDT)
Local: Fri, Apr 27 2012 12:34 pm
Subject: Re: Colorschemes and split window

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?


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Tony Mechelynck  
View profile  
 More options Apr 27 2012, 2:29 pm
From: Tony Mechelynck <antoine.mechely...@gmail.com>
Date: Fri, 27 Apr 2012 20:29:03 +0200
Local: Fri, Apr 27 2012 2:29 pm
Subject: Re: Colorschemes and split window
On 27/04/12 18:34, rameo wrote:

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"


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Gary Johnson  
View profile  
 More options Apr 27 2012, 3:42 pm
From: Gary Johnson <garyj...@spocom.com>
Date: Fri, 27 Apr 2012 12:42:07 -0700
Local: Fri, Apr 27 2012 3:42 pm
Subject: Re: Colorschemes and split window
Minor correction.

On 2012-04-27, Tony Mechelynck wrote:

          ^
          \

> augroup END

Regards,
Gary

 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
rameo  
View profile  
 More options Apr 27 2012, 5:41 pm
From: rameo <rai...@gmail.com>
Date: Fri, 27 Apr 2012 14:41:47 -0700 (PDT)
Local: Fri, Apr 27 2012 5:41 pm
Subject: Re: Colorschemes and split window

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 must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Tony Mechelynck  
View profile  
 More options Apr 27 2012, 6:39 pm
From: Tony Mechelynck <antoine.mechely...@gmail.com>
Date: Sat, 28 Apr 2012 00:39:51 +0200
Local: Fri, Apr 27 2012 6:39 pm
Subject: Re: Colorschemes and split window
On 27/04/12 23:41, rameo wrote:

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!


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
rameo  
View profile  
 More options Apr 28 2012, 3:29 am
From: rameo <rai...@gmail.com>
Date: Sat, 28 Apr 2012 00:29:05 -0700 (PDT)
Local: Sat, Apr 28 2012 3:29 am
Subject: Re: Colorschemes and split window

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 must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
rameo  
View profile  
 More options Apr 29 2012, 5:32 am
From: rameo <rai...@gmail.com>
Date: Sun, 29 Apr 2012 02:32:14 -0700 (PDT)
Local: Sun, Apr 29 2012 5:32 am
Subject: Re: Colorschemes and split window

Can't find the solution.
I tried to change g:colors-name in w/t/s/b:colors-name but nothing works.
Tony or anyone else, any idea?

 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
rameo  
View profile  
 More options Apr 30 2012, 9:15 am
From: rameo <rai...@gmail.com>
Date: Mon, 30 Apr 2012 06:15:26 -0700 (PDT)
Local: Mon, Apr 30 2012 9:15 am
Subject: Re: Colorschemes and split window

It seems that I have found the solution (after many many hours of trying :-( )

I created the function below.
The function must do this (and seems to do it):

a) when there is only 1 window:
  check if filetype is "vim"     --> Dark_ColorScheme
        if filetype is not "vim" --> Light_ColorScheme        
b) when there is a split window:
   check if exist split window colorscheme variable (g:splitcolor)
   if yes, colorscheme of splitwindow = g:splitcolor

   when leaving split window:
   keep the value of the current color in g:splitcolor

Can anyone tell me if I made a mistake and if the function can be simplified?

function SetColors()
        if winnr('$') > 1
           if exists('g:splitcolor')
             exe 'colors '.g:splitcolor
           else
             exe 'colors Light_ColorScheme'
           endif
        elseif winnr('$') == 1 && &ft == 'vim'
             exe 'colors Dark_ColorScheme'
        elseif winnr('$') == 1 && &ft != 'vim'
             exe 'colors Light_ColorScheme'
        endif
endfunction
function KeepColors()
       if winnr('$') > 1
       let g:splitcolor = g:colors_name
       endif
endfunction
augroup filetype_colorscheme
        au BufEnter * call SetColors()
        au BufLeave * call KeepColors()
augroup END


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Ben Fritz  
View profile  
 More options Apr 30 2012, 10:46 am
From: Ben Fritz <fritzophre...@gmail.com>
Date: Mon, 30 Apr 2012 07:46:50 -0700 (PDT)
Local: Mon, Apr 30 2012 10:46 am
Subject: Re: Colorschemes and split window

Looks like it should do what you want, just fine. A minor note, you don't need the exe if you're providing the colorscheme name literally, e.g. "exe 'colors Dark_ColorScheme'" could be just "colors Dark_ColorScheme", but that's not really an important detail; it should work fine as-is.

 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
ramgorur  
View profile  
 More options Sep 22 2012, 2:18 am
From: ramgorur <khaled.ahsan.taluk...@gmail.com>
Date: Fri, 21 Sep 2012 23:18:23 -0700 (PDT)
Local: Sat, Sep 22 2012 2:18 am
Subject: Re: Colorschemes and split window

H

Hi,

I am trying to achieve similar goal, I want to have different color schemes for different file types, but I use omnicppcomplete, which opens a floating window for auto-completion. So, when I try to do the autocompletion, the whole color scheme reverts back to the default. Have you found any work around?


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Ben Fritz  
View profile  
 More options Sep 24 2012, 11:14 am
From: Ben Fritz <fritzophre...@gmail.com>
Date: Mon, 24 Sep 2012 08:14:27 -0700 (PDT)
Local: Mon, Sep 24 2012 11:14 am
Subject: Re: Colorschemes and split window

What do you mean by "floating window"? The best workaround would probably be to detect this type of window in your function and take no action if detected. Is it just the "preview window"? If so, testing for &previewwindow should do it. Does it have a special &buftype value? Or a special &filetype value? These could be tested as well.

I suspect you're talking about the preview window, since you're using completion. If you have "preview" in your 'completeopts' option, you will automatically see the preview window pop up for completion methods which supply the required information.


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
End of messages
« Back to Discussions « Newer topic     Older topic »