Max Dyckhoff wrote:
I normally run with lots of splits. Recently I started using italics for
various syntax highlighting (especially comments and enum tag values).
Since then I have noticed the ocassional pixel remaining when I switch
from one split to another.

The situation where this happens is pretty reproducable. In one split
have a block of text with a large amount of white space at the
beginning, such as:

type my_function( type parameter,
                        type parameter2,
                        type parameter3);

Then in an adjacent split have some italicised comment text which starts
in the same window location as the white space, such as:

        // wibble wobble
        // wibble wobble
        // jelly on a plate

When I switch from the comment split to the text split, the lower left
pixel of the leading / is left behind on the two lines with whitespace.
It does actually happen in more places than this, but that is the most
easily reproducable.

If I scroll the window containing the spurious pixels then the pixels
scroll with the text (which is odd). If I visual select the block of
text, or type over the pixels, then the spurious pixels will go away.

Any ideas what I can do to fix this? I'm on Windows XP, running vim 7.0
as gvim (although with none of the fancy menus or scrollbars, I just use
it for the colouring :)

Max




It may depend on your 'guifont'. Some fonts are not truly fixed-width all over their glyph range, and that may cause problems. I remember for instance, that I had "disappearing pixels" in bold Cyrillic with the Lucida_Console font, so now I use Courier_New for Russian.

-- Watch out: there are 4 possible different formats for 'guifont', and each version of gvim accepts only one of them. (Console Vim, of course, accepts none of them.) The families are GTK+2, kvim, other-X11 and non-X11. (GTK+1, Athena, Motif, ... are part of other-X11.) So for instance to set 12-pitch Courier New or similar:

  if has("gui_running")
    if has("gui_gtk2")
      set gfn=Adobe\ Courier\ 12
    elseif has("gui_kde")
      set gfn=Adobe\ Courier/12
    elseif has("x11")
      set gfn=*-courier-medium-r-normal-*-*-120-*-*-m-*-*
    else
      set gfn=Courier_New:h12
    endif
  endif

The names may vary somewhat according to what your installed fonts call themselves. Vary the single number in each font name to make the font bigger or smaller.

On some systems ":set gfn=*" will pop up a menu of fonts; on most systems (with 'nocompatible') ":set gfn=<Tab>" (where <Tab> means "hit the tab key", not "hit the 5 keys < T a b > in succession") will allow to edit the current value on the command-line. (Enter to accept, Esc to cancel)


Best regards,
Tony.

Reply via email to