diff options
| -rw-r--r-- | autoload/nohai.vim | 24 | ||||
| -rw-r--r-- | plugin/nohai.vim | 12 | 
2 files changed, 24 insertions, 12 deletions
| diff --git a/autoload/nohai.vim b/autoload/nohai.vim index 71f7f3a..2d9592e 100644 --- a/autoload/nohai.vim +++ b/autoload/nohai.vim @@ -14,8 +14,12 @@  " along with Nohai. If not, see <https://www.gnu.org/licenses/>.  " Remaps <CR> in command mode to run `nohlsearch` after accepting the command. -function! s:AddMapping() -	cnoremap <expr> <silent> <CR> <SID>CRAndNohlsearch() +function! s:AddMapping(mode) +	if a:mode ==# 'n' +		cnoremap <expr> <silent> <CR> <SID>CRAndNohlsearch() +	elseif a:mode ==# 'v' || a:mode ==# 'o' +		cnoremap <expr> <silent> <CR> <SID>CRAndNohlsearchV() +	endif  endfunction  " Removes the Nohai <CR> cmap. @@ -34,12 +38,20 @@ function! s:CRAndNohlsearch()  	return "\<CR>:nohlsearch\<CR>"  endfunction +function! s:CRAndNohlsearchV() +	let expr = "\<CR>" +	let expr .= ":\<C-u>nohlsearch\<CR>" +	let expr .= 'gv' + +	return expr +endfunction +  " Turn on Nohai autocmds. -function! s:AutocmdOn() +function! s:AutocmdOn(mode)  	augroup nohai  		autocmd! -		autocmd CmdlineEnter [/\?] call s:AddMapping() +		execute 'autocmd CmdlineEnter [/\?] call s:AddMapping("' . a:mode . '")'  		autocmd CmdlineLeave [/\?] call s:Deactivate()  	augroup END  endfunction @@ -51,8 +63,8 @@ endfunction  " Expr mapping function that turns on Nohai and starts the search command  " specified by `command`, either '/' or '?'. -function! nohai#Search(command) -	call s:AutocmdOn() +function! nohai#Search(command, mode) +	call s:AutocmdOn(a:mode)  	return a:command  endfunction diff --git a/plugin/nohai.vim b/plugin/nohai.vim index fc573b5..abbadbb 100644 --- a/plugin/nohai.vim +++ b/plugin/nohai.vim @@ -20,14 +20,14 @@ if exists('g:loaded_nohai')  endif  let g:loaded_nohai = 1 -nnoremap <expr> <Plug>(nohai-search-backward) nohai#Search('?') -nnoremap <expr> <Plug>(nohai-search) nohai#Search('/') +nnoremap <expr> <Plug>(nohai-search-backward) nohai#Search('?', 'n') +nnoremap <expr> <Plug>(nohai-search) nohai#Search('/', 'n') -xnoremap <expr> <Plug>(nohai-search-backward) nohai#Search('?') -xnoremap <expr> <Plug>(nohai-search) nohai#Search('/') +xnoremap <expr> <Plug>(nohai-search-backward) nohai#Search('?', 'v') +xnoremap <expr> <Plug>(nohai-search) nohai#Search('/', 'v') -onoremap <expr> <Plug>(nohai-search-backward) nohai#Search('?') -onoremap <expr> <Plug>(nohai-search) nohai#Search('/') +onoremap <expr> <Plug>(nohai-search-backward) nohai#Search('?', 'o') +onoremap <expr> <Plug>(nohai-search) nohai#Search('/', 'o')  if exists('g:nohai_no_maps') && g:nohai_no_maps  	finish | 
