On 9 Sty, 20:07, Christian Brabandt <[email protected]> wrote: > Hi Wiktor! > > On Mi, 09 Jan 2013, Wiktor Ruben wrote: > > > > > > > > > > > Hello Vimmers, > > > Let's create sample fold: > > > vim -u NONE -N > > > :set foldmethod=marker > > i > > {{{1<CR> > > foo bar zaz<CR> > > foo bar zaz<Esc>bmm0za > > > OK, now we have mark 'm' set at the beginning of second 'zaz' within > > closed fold and cursor placed at the beginning of the last line. The > > problem is: when we jump to the mark with '`m' our fold stays closed. > > > I guess that fold isn't opened because cursor is already at mark line > > (but in different column). I find this bahaviour annoying e.g. opening > > file edited a while ago and executing '`^' or '`.' makes me confused > > because I have to additionally execute 'zv' to get where I want. > > > There is no need for 'zv' after jump from line different from mark > > line. Is there a way to force Vim to open fold even if cursor is > > already at destination line? > > Bram, > this patch fixes it. The problem is, in nv_gomark() we only checked, > whether the line position changed, and since it didn't change, the fold > isn't opened. > > diff --git a/src/normal.c b/src/normal.c > --- a/src/normal.c > +++ b/src/normal.c > @@ -7523,7 +7523,7 @@ > pos_T *pos; > int c; > #ifdef FEAT_FOLDING > - linenr_T lnum = curwin->w_cursor.lnum; > + pos_T old_cursor = curwin->w_cursor; > int old_KeyTyped = KeyTyped; /* getting file may reset > it */ > #endif > > @@ -7552,7 +7552,7 @@ > #endif > #ifdef FEAT_FOLDING > if (cap->oap->op_type == OP_NOP > - && (pos == (pos_T *)-1 || lnum != curwin->w_cursor.lnum) > + && (pos == (pos_T *)-1 || !equalpos(old_cursor, *pos)) > && (fdo_flags & FDO_MARK) > && old_KeyTyped) > foldOpenCursor(); > > Mit freundlichen Gr en > Christian > --
Thank you for the patch but if I understand correctly now fold will stay closed when cursor is already at mark's position i.e. in the same line and column. But why not to open fold every time we jump to a mark within it? No matter whether cursor is already at mark's position or not. -- 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
