From: Oleg Broytman Date: Thu, 19 Dec 2019 02:29:47 +0000 (+0300) Subject: .vimrc: Fix `lazyredraw` X-Git-Url: https://git.phdru.name/?a=commitdiff_plain;h=096bb648471cb26e48e5c59911f52b6e436464a3;p=dotfiles.git .vimrc: Fix `lazyredraw` --- diff --git a/.vimrc b/.vimrc index aa6fd4e..8e88841 100644 --- 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 -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