I have the following function and binding:
noremap <silent> g: <Esc>:set operatorfunc=<SID>get_command_mode_range<CR>g@
function! s:get_command_mode_range(type)
let b = line("'[")
let e = line("']")
if b < e
let range = '.,+' . (e - b)
elseif b == e
let range = '.'
else
let range = '.,+' . (b - e)
endif
call feedkeys(':' . range, 'n')
endfunction
If I start on the first line of the function, that is, "function!..."
and press g: followed by / and then searching for "endf" and pressing
enter, my command line will be
:.,+12
However, endfunction is actually on the thirteenth line after
function!, so the range should really be .,+13. If i instead search
for "ndf" I get the correct result.
So it seems that there's something strange going on in what line is
being set for the ] mark when performing a search under these
conditions, coupled with patterns that match at the very beginning of
a line.
nikolai
--~--~---------~--~----~------------~-------~--~----~
You received this message from the "vim_dev" maillist.
For more information, visit http://www.vim.org/maillist.php
-~----------~----~----~----~------~----~------~--~---