" 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 ruler " Show cursor position below each window
set showcmd " Show (partial) command keys in the status line
+set visualbell " Use visual bell instead of beeping
+if v:version >= 800
+ set belloff=error,insertmode " Do not ring the bell for these reasons
+endif
" Short message for [Modified];
" overwrite message for writing a file with subsequent message;
if has("win32")
"set guifont=Courier_New:h18:cRUSSIAN
set guifont=Lucida_Console:h18:cRUSSIAN
- else
set guifont=Monospace\ 16
+ elseif has("x11")
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
set t_Sb="\e[4%dm"
endif
+ " KP_Up -> Up
+ map <Esc>Ox <Esc>OA
+ map! <Esc>Ox <Esc>OA
+ " KP_Down -> Down
+ map <Esc>Or <Esc>OB
+ map! <Esc>Or <Esc>OB
+ " KP_Right -> Right
+ map <Esc>Ov <Esc>OC
+ map! <Esc>Ov <Esc>OC
+ " KP_Left -> Left
+ map <Esc>Ot <Esc>OD
+ map! <Esc>Ot <Esc>OD
+ " KP_Home -> Home
+ map <Esc>Ow <Esc>[7~
+ map! <Esc>Ow <Esc>[7~
+ " KP_End -> End
+ map <Esc>Oq <Esc>[8~
+ map! <Esc>Oq <Esc>[8~
+ " KP_Prev (PgDn) and KP_Next (PgUp) work fine, no mapping is required
+
" 'autoselect' to always put selected text on the clipboard;
" 'unnamed' to use the * register like unnamed register '*'
" for all yank, delete and put operations;
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