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: ')}]>'.

-Codie

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