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 [email protected].
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to