On Friday, September 27, 2013 7:27:27 PM UTC+2, glts wrote:
> On Friday, September 27, 2013 3:01:52 PM UTC+2, Codie Codemonkey wrote:
> > Object selections have become one of my favorite Vim features.  (See :help 
> > object-select for some context for this request.)  It took me awhile to 
> > discover them, but now that I have I use them constantly.
> > 
> > I'd like to see a new one (or actually two considering the a and i forms) 
> > to select comma separated items in a list.
> > 
> > In the simplest use case, comma object selection would include text 
> > starting at the previous comma or '(' to the next comma or ')'.
> > 
> > a,  -  Select the current parameter in a C-style parameter list. Any 
> > previous whitespace will be included, as well as any trailing ','.  
> > Whitespace after the trailing ',' will not be included.  If the parameter 
> > is the last in the parameter list, the ending delimiter will not be 
> > selected.
> > 
> > i,  -  Same as a, except that leading whitespace and a trailing ',' (if 
> > present) will not be part of the selection.
> > 
> > Other bracketing delimeters should work in addition to '(' and ')', 
> > including '[' and ']', '{' and '}'  and possibly '<' and '>'.
> > 
> > Examples:
> > 
> > Consider this line of programming code:
> >       func( a, b(c, d[0]), "this, is a test")
> > 
> > In normal mode with the cursor on the first parameter, "da," would change 
> > this to:
> >       func( b(c, d[0]), "this, is a test")
> > 
> > Or, if the cursor is on 'b' in the second parameter, "da," would yield:
> >       func( a, "this, is a test")
> > (Note the ignored ')' and ']' characters.)
> > 
> > Or if the cursor was in the string of the third parameter, "da," would 
> > yield:
> >       func( a, b(c, d[0]), )
> > (Note that the ',' in the string was not a delimiter because it was nested 
> > between quotes.)
> > 
> > Some filetypes have other needs.  For example in a CDF file, <C-R> is a 
> > bracketing character.  To accommodate this I suggest some accompanying 
> > options:
> > 
> > listsep - Characters used to separate items in a list. Default: ',;'
> > liststart - Characters used to start a list (if not nested in quotes or 
> > balanced bracketed strings). Default: '({[<'.
> > listend - Characters used to end a list (if not nested in quotes or 
> > balanced bracketed strings). Default: ')}]>'.
> 
> this is a common and very reasonable request.
> 
> And since it is so common, talented people have already thought of a
> solution many years ago :) ... The most popular framework for creating
> custom text objects is
> 
> http://www.vim.org/scripts/script.php?script_id=2100
> https://github.com/kana/vim-textobj-user
> 
> and what's even better, is that there is already a wealth of text
> objects made with that framework. See (especially textobj-parameter!):
> 
> https://github.com/kana/vim-textobj-user/wiki

Also see

http://www.vim.org/scripts/script.php?script_id=2699
http://www.vim.org/scripts/script.php?script_id=4171
https://github.com/b4winckler/vim-angry

(And please do search vim.org/scripts, everything's there.)

-- 
-- 
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.

Reply via email to