" 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:+
set toolbar=icons,text " how to show the toolbar
endif
+ set guicursor+=n:block " Block cursor in normal mode
+ set guicursor+=i:ver10 " Solid vertical bar in insert mode
set guicursor+=a:blinkon0 " Stop cursor blinking
" Make shift-insert work like in Xterm
" ----------
else
- if (&term =~ "linux") || ($BACKGROUND == 'DARK') || ($BACKGROUND == 'dark')
+ if (&term =~ "linux") || (&term =~ "cygwin") || (&term =~ "putty")
+ \ || ($BACKGROUND == 'DARK') || ($BACKGROUND == 'dark')
\ || has("win32")
" Background of the terminal is black or dark grey
set background=dark
function! SetupEncoding(encoding)
- if !has("iconv") || exists('b:encoding_set') || strlen(a:encoding) == 0
+ if !has("iconv") || exists('b:encoding_set') || empty(a:encoding)
return
endif
call RestorePosition()
let b:encoding_set = 1
- if len(expand('%'))
+ if !empty(expand('%'))
execute "edit ++enc=" . a:encoding
endif
endfunction
let line = getline('.')
let parts = split(line, s:URL_re . '\zs')
- if len(parts) == 0
+ if empty(parts)
throw 'ExtractURLCannotFindURL' " No URL found
endif
function! AutoEncoding()
if &modified && &fileencoding != ""
call SetupEncoding(&fileencoding)
- else
- redraw
endif
autocmd! auto-encoding
augroup! auto-encoding
autocmd BufReadPost * call SetupSpell()
function! SaveSpell()
- if expand('%') == expand('~/.vim/spell/en.ascii.add')
+ if expand('%:p') == expand('~/.vim/spell/en.ascii.add')
mkspell! -ascii %
else
mkspell! %
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