Am 30.08.2013 18:47, schrieb ZyX:
> There is an interesting fact that setting `@/` resets //... flags.
> Thus you may try the following:
>
>      function s:SetSearch(sstr)
>          let @/=@/
>          return a:sstr
>      endfunction
>      noremap <expr> n <SID>SetSearch('Nn'[v:searchforward])
>      noremap <expr> N <SID>SetSearch('nN'[v:searchforward])
Nice little observation, thanks for noticing!
Weird: after `?pattern<CR>`, the first `n` goes further back, following
`n`s move downwards.  It appears that `:let @/ = @/` sets
v:searchforward to 1.
function s:SetSearch(sstr)
     let @/=@/
     return a:sstr
endfunction
noremap <expr> n <SID>SetSearch('n')
noremap <expr> N <SID>SetSearch('N')
-- 
Andy
-- 
-- 
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 vim_use+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.
No comments:
Post a Comment