Christian Brabandt wrote: > On Wed, April 24, 2013 11:38, Bram Moolenaar wrote: > > Christian Brabandt wrote: > >> On Sa, 20 Apr 2013, Bram Moolenaar wrote: > >> > I wonder if changing 'paragraphs' and 'sections' into a regexp > >> > that matches at what's between paragraphs is sufficient. How > >> > about this style with two paragraphs: > >> Did this and updated the example. Would this be acceptable? > > Hmm, I think what we really want is to match the text from the end > > of one paragraph until the start of the next one. The example with > > "/^$" would still work to have empty-line separated paragraphs. > > Paragraphs that start with an indent would be found with "/^\s\+". > > correct. > > > You could then also allow more than one empty line between paragraphs > with "/^\n*$". > > That would be possible, but doesn't really change the cursor motion. Take > the example from the patch: > ---------------------------- > 1 Lorem ipsum dolor sit amet, > 2 consetetur sadipscing elitr, > 3 sed diam > 4 > 5 > 6 Lorem ipsum dolor sit amet, > 7 consetetur sadipscing elitr, > 8 sed diam > > If the 'para' option is set to '/^$' moving using '}' will first move to > line 4, the next paragraph motion will move to line 5. Typing '}' again > will then move the cursor at the end of the last line.
The } motion is a bit strange in that it stops before a paragraph. I never understood why it's like that and not jumping to the first line of the paragraph. Anyway, using ]] and [[ you do jump to the start or end of a section, so there it's easier to see what the pattern does. > Even is you use the /^\n\+$ as regular expression, the cursor will still > jump to the exact same positions, as line 4 and line 5 match > that regular expression. We could make it jump to the end of the match > using the SEARCH_END flag and then advance the cursor one more position, > but this would only work on forward searches, this doesn't seem to work > for backward searches: > https://groups.google.com/group/vim_use/msg/d82897dd34010e93?hl=de How about using the pattern /^\n\+\zs ? The \zs marks where the cursor ends up. This also allows moving to the first line of the paragraph. Question remains how to handle {, where the cursor ends up then. An alternative is to use flags after // to specify where the cursor is positioned for { and }, e.g. /^\n\+/{s}e would mean { moves to the start of the match and } to the end of the match. -- hundred-and-one symptoms of being an internet addict: 217. Your sex life has drastically improved...so what if it's only cyber-sex! /// Bram Moolenaar -- [email protected] -- http://www.Moolenaar.net \\\ /// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ \\\ an exciting new programming language -- http://www.Zimbu.org /// \\\ help me help AIDS victims -- http://ICCF-Holland.org /// -- -- 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 --- You received this message because you are subscribed to the Google Groups "vim_use" 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.
