You can define your own text object like this:
onoremap I :exec 'norm vT'.nr2char(getchar()).'ot'.nr2char(getchar())<cr>
Then, to do your example, you would type
yI<space>"
The mnemonic I think of is "(d)elete (I)nbetween <char 1>, <char 2>". Thankfully, I cannot be used as an argument to a...
And it made me realize that there aren't really any custom text-objects in V, although there's plenty of room for them (since it has it's own mode, we wouldn't have to worry about overwriting other operators)
So does anyone have ideas for new text objects to add?
I think whole-buffer (blockwise and linewise) would be two good ones
Current-line could be useful too
Maybe current-column? Not sure if that would would be as useful
@Downgoat vimscript is significantly worse than JavaScript. The only thing I like about it is that it lets me do cool things with vim. Other than that it's a horrible language with no redeeming features
> But vi programmers no longer need cast envious glances towards Emacs' parenthetical scripting language. Our favorite editor can be scripted too—and much more humanely than Emacs
@Downgoat call simply means "call func". exec means "evaluate func as a string and run it". So if "func" returns normal iHello, then exec func will insert hello
Exec ends up calling the function in the end, but that's because it has to call it to evaluate the expression