Thursday, June 21, 2012

Re: highlighting search results from within a function

On 2012-06-21, richard emberson wrote:
> I've got a function:
>
> function! XXXX()
> execute '/this'
> endfunction
>
> and when I run it:
>
> :call XXXX()
>
> my cursor is positioned at the first 'this' but the text
> is not highlighted (nor is the text of any of the other 'this'
> highlighted).

The problem is that the search register is saved before a function
call and restored after, so when your function returns the search
register no longer contains "this". See ":help
function-search-undo".

One solution would be

function! XXXX()
execute '/this'
return @/
endfunction

and to use the following instead of ":call XXXX()".

:let @/ = XXXX()

HTH,
Gary

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

No comments: