diff options
| author | Teddy Wing | 2019-12-14 16:40:23 +0100 | 
|---|---|---|
| committer | Teddy Wing | 2019-12-14 16:40:23 +0100 | 
| commit | d26b7d079468e89a81b10e81f875169e24a26f49 (patch) | |
| tree | 415d20e77ec2020d7d697ca9bb3d94e85f244945 /plugin | |
| parent | b772e113b413a1c12ca97cbcd9086d2cb5e3ca35 (diff) | |
| download | vim-nohai-d26b7d079468e89a81b10e81f875169e24a26f49.tar.bz2 | |
Deactivate nohlsearch when exiting command line without <CR>
Previously I was deactivating the <CR> mapping in the rhs of the <CR>
mapping. However, you can also exit command mode without pressing <CR>
(e.g., with <C-c>). In that case, the <CR> mapping would still be
active, causing regular search commands to nohlsearch on completion.
Now, use a `CmdlineLeave` `autocmd` instead to remove the mapping and
autocmd. This ensures the plugin always cleans up after itself when the
search line is exited.
Diffstat (limited to 'plugin')
| -rw-r--r-- | plugin/nohai.vim | 10 | 
1 files changed, 8 insertions, 2 deletions
| diff --git a/plugin/nohai.vim b/plugin/nohai.vim index ebd6540..70a8adb 100644 --- a/plugin/nohai.vim +++ b/plugin/nohai.vim @@ -17,7 +17,7 @@ function! s:Nohai(cmdwin_char)  	" 	call s:RemoveMapping()  	endif -	call s:AutocmdOff() +	" call s:AutocmdOff()  endfunction  function! s:AddMapping(cmdwin_char) @@ -35,6 +35,11 @@ function! s:RemoveMapping()  	silent! cunmap <CR>  endfunction +function! s:Deactivate() +	call s:RemoveMapping() +	call s:AutocmdOff() +endfunction +  " function! s:CR(cmdwin_char)  " 	if a:cmdwin_char == '/' || a:cmdwin_char == '?'  " 		return "\<CR>:nohlsearch\<CR>" @@ -54,7 +59,7 @@ function! s:CR()  	" return expr  	" TODO: Use CmdlineLeave instead for e.g. <C-c> -	call s:RemoveMapping() +	" call s:RemoveMapping()  	return "\<CR>:nohlsearch\<CR>"  endfunction @@ -65,6 +70,7 @@ function! s:AutocmdOn()  		autocmd!  		autocmd CmdlineEnter [/\?] call s:Nohai(expand('<afile>')) +		autocmd CmdlineLeave [/\?] call s:Deactivate()  	augroup END  endfunction | 
