]> git.phdru.name Git - dotfiles.git/commitdiff
.vimrc: Fix `lazyredraw`
authorOleg Broytman <phd@phdru.name>
Thu, 19 Dec 2019 02:29:47 +0000 (05:29 +0300)
committerOleg Broytman <phd@phdru.name>
Thu, 19 Dec 2019 02:29:47 +0000 (05:29 +0300)
.vimrc

diff --git a/.vimrc b/.vimrc
index aa6fd4ee52cab82ae24126d4f129bfd2125ae63f..8e8884172805f4014f01f25446dc241e559543b5 100644 (file)
--- a/.vimrc
+++ b/.vimrc
@@ -47,7 +47,11 @@ set whichwrap=b,s,h,l,<,>,[,],~ " Wrap to the previous/next line on all keys and
 " 4 displaying text
 
 set display=lastline,uhex " Show the last line instead of '@'; show non-printable chars as <hex>
-set lazyredraw    " Do not update screen while executing macros
+
+" Do not set it here, it breaks initial screen drawing and cursor positioning.
+" See SetLazyRedraw at the end of the script.
+" set lazyredraw  " Do not update screen while executing macros
+
 set list          " listchars only works with 'list'
 " Show tabs, non-breaking/trailing spaces, long lines
 set listchars=tab:>_,nbsp:_,trail:_,extends:+,precedes:+
@@ -837,5 +841,13 @@ command! UName Uname
 endif
 " ----------
 
+if v:version >= 800
+   function! SetLazyRedraw(timer_id)
+      call timer_stop(a:timer_id) " One-time event
+      set lazyredraw
+   endfunction
+   call timer_start(500, 'SetLazyRedraw')
+endif
+
 " This has to go to the very end of ~/.vimrc to allow reading the .vimrc
 set secure        " safer working with script files in the current directory