aboutsummaryrefslogtreecommitdiff
path: root/autoload
diff options
context:
space:
mode:
Diffstat (limited to 'autoload')
-rw-r--r--autoload/insert_suspend_hlsearch.vim13
1 files changed, 10 insertions, 3 deletions
diff --git a/autoload/insert_suspend_hlsearch.vim b/autoload/insert_suspend_hlsearch.vim
index de43d10..4408d52 100644
--- a/autoload/insert_suspend_hlsearch.vim
+++ b/autoload/insert_suspend_hlsearch.vim
@@ -1,8 +1,15 @@
-" Save value of 'hlsearch' into a variable, and disable it
+" Suspend 'hlsearch' if set, add hook to restore on insert completion
function! insert_suspend_hlsearch#() abort
- let s:hlsearch = &hlsearch
+
+ " Nothing to do if 'hlsearch' isn't set
+ if !&hlsearch
+ return
+ endif
+
+ " Turn off 'hlsearch' and set a hook to re-enable it when insert mode ends
set nohlsearch
autocmd insert_suspend_hlsearch InsertLeave *
- \ let &hlsearch = s:hlsearch
+ \ set hlsearch
\|autocmd! insert_suspend_hlsearch InsertLeave
+
endfunction