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