Gary Johnson wrote:
> Under some conditions, the cursorcolumn highlighting is shifted to
> the right on folded lines.
>
> In the following example, 'somefile' just needs to contain several
> lines of text (maybe a dozen), each line several characters long (>
> 16). I set the highlighting of CursorColumn to have a blue
> background in a color terminal so as to be able to distinguish it
> clearly from the Folded group.
>
> $ vim -N -u NONE -i NONE somefile
>
> :hi CursorColumn ctermbg=4
> :set cuc
> :set nowrap
>
> Manually fold a set of lines somewhere in the text, e.g.,
>
> :4,6fold
>
> Move the cursor to a non-folded line a few columns from the left
> margin, e.g.,
>
> 8G
> 8|
>
> Now, use the 'zs' command to scroll the text horizontally so that
> the cursor column is at the left of the screen:
>
> zs
>
> Notice that the cursorcolumn highlighting is now in the first screen
> column of unfolded lines, but is in screen column 8 (in this
> example) on the folded lines. Moving the cursor to the right, e.g.,
> by typing l, moves the cursorcolumn highlighting to the right, but
> it remains 8 columns too far to the right in the folded lines.
>
> This bug appears in vim 7.2.22 compiled for Cygwin and running in
> rxvt and compiled for Red Hat Linux and running in xterm. Here is
> the version information for the Linux build.
This patch should fix it:
*** ../vim-7.2.022/src/screen.c Thu Jul 24 20:29:09 2008
--- src/screen.c Fri Sep 26 21:23:06 2008
***************
*** 2439,2447 ****
#ifdef FEAT_SYN_HL
/* Show 'cursorcolumn' in the fold line. */
! if (wp->w_p_cuc && (int)wp->w_virtcol + txtcol < W_WIDTH(wp))
! ScreenAttrs[off + wp->w_virtcol + txtcol] = hl_combine_attr(
! ScreenAttrs[off + wp->w_virtcol + txtcol], hl_attr(HLF_CUC));
#endif
SCREEN_LINE(row + W_WINROW(wp), W_WINCOL(wp), (int)W_WIDTH(wp),
--- 2439,2455 ----
#ifdef FEAT_SYN_HL
/* Show 'cursorcolumn' in the fold line. */
! if (wp->w_p_cuc)
! {
! txtcol += wp->w_virtcol;
! if (wp->w_p_wrap)
! txtcol -= wp->w_skipcol;
! else
! txtcol -= wp->w_leftcol;
! if (txtcol >= 0 && txtcol < W_WIDTH(wp))
! ScreenAttrs[off + txtcol] = hl_combine_attr(
! ScreenAttrs[off + txtcol], hl_attr(HLF_CUC));
! }
#endif
SCREEN_LINE(row + W_WINROW(wp), W_WINCOL(wp), (int)W_WIDTH(wp),
--
>From "know your smileys":
:-E Has major dental problems
/// Bram Moolenaar -- [EMAIL PROTECTED] -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///
--~--~---------~--~----~------------~-------~--~----~
You received this message from the "vim_dev" maillist.
For more information, visit http://www.vim.org/maillist.php
-~----------~----~----~----~------~----~------~--~---