diff --git a/.config/vim/vimrc.d/40-keys.vim b/.config/vim/vimrc.d/40-keys.vim index 227c861..6cea9c6 100644 --- a/.config/vim/vimrc.d/40-keys.vim +++ b/.config/vim/vimrc.d/40-keys.vim @@ -87,9 +87,18 @@ if (get(g:, 'loaded_fzf')) endif " Search for selected text. -" Taken from https://vim.fandom.com/wiki/Search_for_visually_selected_text -vnoremap * y/\V=escape(@",'/\') -vnoremap # y?\V=escape(@",'?\') +" Modified from https://vim.fandom.com/wiki/Search_for_visually_selected_text +function! GetVisualSelection() + let l:old_reg = getreg('"') + let l:old_regtype = getregtype('"') + norm y + let l:sel = getreg('"') + call setreg('"', l:old_reg, l:old_regtype) + return l:sel +endfunction + +vnoremap * /\V=escape(GetVisualSelection(),'/\') +vnoremap # ?\V=escape(GetVisualSelection(),'?\') " Extended `*`. Starts vim search (without jump) and ripgrep search for cword nmap * :let @/ = '\<' . expand('') . '\>'