FYI, I had a look at the code.  I believe this behaviour was introduced by 
following patch:
  
https://code.google.com/p/vim/source/detail?r=7e3fedfc3d08d020e3ce047ec1a1cfd195af9ed7

In particular, this piece of code:

#ifdef FEAT_COMMENTS
    /* In format_lines() (i.e. not insert mode), fo+=q is needed too...  */
    if ((State & INSERT) || has_format_option(FO_Q_COMS))
        lead_len = get_leader_len(ml_get(lnum), NULL, FALSE, TRUE);
#endif

Seems to me this means that this discarding of comment characters from 
indentation count happens in INSERT mode regardless of all settings.

To confirm, I tried reproducing my steps after doing ':set comments=' and 
indeed that seems to correct things.  So at least that's a work-around.  
(Recall that the default value for 'comments' is 
"s1:/*,mb:*,ex:*/,://,b:#,:%,:XCOMM,n:>,fb:-", which indeed has all the chars I 
had trouble with)

I think this is a bug, the use of non-zero lead_len is unintuitive and 
surprising.  Perhaps it should be gated by having fo+=c, namely where we have 
indicated we want comments to be formatted.  But I am not sure of this, still 
getting the hang of the semantics of all the 'fo' options.  Regardless, the 
current behaviour seems to me overly aggressive, being applied even when there 
are no comments.

I would point out that this breaks formatting in packages such as vimwiki, 
which use fo+=n for formatting their bullet lists.  It's how I encountered this 
issue.


On Thursday, March 7, 2013 10:05:58 PM UTC-5, Maciej Kalisiak wrote:
> I am trying to :set flp=^\\s*-\\s*, so that I can do properly indented bullet 
> list using dashes.  In older versions of Vim this works as expected.  That 
> is, I get this formatting:
> 
> - aoeu aoeu aeou oeu aoeu oaeu
>   aeouaeouaoeu aoeuaoue eauo aou
> 
> (i.e., 2nd and consecutive lines are indented)
> 
> But with some recent versions of Vim it's as if the dash is not recognized as 
> a list bullet, and all lines are flushed left; i.e.,
> 
> - aoeu aoeu aoeu aoeu aoeu
> aoeu aoeu aoeu aoeu aaoeu
> 
> I've noticed same behaviour if I use '#' or '*' for bullet character, while 
> digits or letters always work fine.
> 
> Versions where things work properly:
> - vim 7.3 on OS X with (as far as I can tell) no patches applied (i.e., stock 
> on my Macbook Air).
> - MacVim 7.2 patches 1-376 on OS X
> 
> Versions where things do NOT work properly:
> - MacVim 7.3 patches 1-754 on OS X
> - Vim 7.3 patches 1-831 on Linux
> 
> 
> HOW TO REPRODUCE
> 
> Start vim with:
> $ vim -u NONE -U NONE
> 
> Set options:
> :set fo=tn
> :set autoindent
> :set tw=40  " so don't have to type much to hit margin
> :set flp=^\\s*X\\s*
> 
> Note the 'X'... this always works.  That is, I get proper indenting:
> 
> X  aoeu aoeu aeou aoeu aoeu aoeu aoeu
>    aoeu aoeu aoeu aoeu aeou aoue aoeu
> 
> Now I switch 'X' to one of the problematic characters:
> :set flp=^\\s*-\\s*
> 
> With this, on the "broken" versions, there is no indentation:
> 
> -  aoeu aoeu aoeu aoeu aoeu aoeu aoeu aoeu
> aoeu aoeu aoeu aoeu aou aoeu aoeu aoeu
> 
> while on "not broken" versions it indents as expected:
> 
> -  aoeu aoeu aoeu aoeu aeou aeou aoeu aoeu aoeu
>    aoeu aoeu aoeu aoeu aoeu oaeu aoeu aoeu
> 
> As I said, this behaviour is same if I use '*' or '#', and possibly other 
> characters, but letters and digits seem unaffected.

-- 
-- 
You received this message from the "vim_dev" 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

--- 
You received this message because you are subscribed to the Google Groups 
"vim_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.


Raspunde prin e-mail lui