> Well, I can see that you get the information, but this is not really a
> useful real-world example. Think of a user that wants to get something
> done for which v:operator is needed. And for which there is no other
> solution.
Here's a somewhat naively implemented example where a custom text-object is
defined that allows you to operate on a function name whether the cursor is on
the
name itself or on its arguments. You can yank with yF, change with cF,
uppercase
with gUF, etc. I can't think of any other way to do this, or more complicated
language-based custom text-object definition--e.g. yank/change a whole
conjunction
or disjunction in a logic language, yank or change the condition of an 'if' or
'while' loop from anywhere within its body. Some of these would be more useful
than others, of course, but there are a lot of real world possibilities, I
think.
Ben.
:onoremap F <Esc>:call OperateFunctionName()<CR>
function! OperateFunctionName()
let last_count = v:count
let last_op = v:operator
let last_reg = v:register
exe "normal \<Esc>"
while search('\(\%#\i\|\i\s*\%#\)\i*\s*(','ce',line('.')+1) == 0
normal [(
endwhile
exe "normal \<BS>\"_yiw"
echo 'normal '.(last_count>0?(last_count):'').'"'.last_reg.last_op.'e'
endfun
Send instant messages to your online friends http://au.messenger.yahoo.com
--~--~---------~--~----~------------~-------~--~----~
You received this message from the "vim_dev" maillist.
For more information, visit http://www.vim.org/maillist.php
-~----------~----~----~----~------~----~------~--~---