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/nohai.vim | |
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/nohai.vim')
-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 |