\ || has("win32")
" Background of the terminal is black or dark grey
set background=dark
+ highlight MoreMsg ctermfg=white
+ highlight ModeMsg ctermfg=white
+ highlight Question ctermfg=white
else
set background=light
+ highlight MoreMsg cterm=bold ctermfg=NONE
+ highlight Question cterm=bold ctermfg=NONE
endif
if (&term =~ "linux")
execute 'set t_kb=' . nr2char(127)
- else
- highlight MoreMsg cterm=bold ctermfg=NONE
- highlight Question cterm=bold ctermfg=NONE
endif
if (&term =~ "rxvt") || (&term =~ "screen") || (&term =~ "term") || (&term =~ "vt100")
" Restore last known cursor position
function! RestorePosition()
- if exists('b:position_resored')
+ if exists('b:position_restored')
return
endif
if line("'\"") > 0
call cursor(line("'\""), col("'\""))
endif
- let b:position_resored = 1
+ let b:position_restored = 1
endfunction
" When editing a file, always jump to the last cursor position (if saved)
function! SetupEncoding(encoding)
- if !has("iconv") || exists('b:encoding_set')
+ if !has("iconv") || exists('b:encoding_set') || strlen(a:encoding) == 0
return
endif
- if strlen(a:encoding) > 0
- call RestorePosition()
- let b:encoding_set = 1
- execute "edit ++enc=" . a:encoding
- endif
+ call RestorePosition()
+ let b:encoding_set = 1
+ execute "edit ++enc=" . a:encoding
endfunction
function! W()
" let encodings=filter(split(&fileencodings, ','), 'v:val != "ucs-bom"')
let encodings = ['us-ascii']
- if $LC_CTYPE == 'ru_RU.UTF-8'
+ if $LC_CTYPE =~ 'UTF-8' " UTF-8 or en_US.UTF-8 or ru_RU.UTF-8 or such
let encodings += ['utf-8']
elseif $LC_CTYPE == 'ru_RU.KOI8-R'
let encodings += ['koi8-r', 'utf-8']
" Called automagically after every buffer read, enables fileencoding
-" setting from modeline (see Tip #911)
+" setting from modeline (see Tip #911: http://vim.wikia.com/wiki/VimTip911)
function! AutoEncoding()
- if exists("b:justloaded")
- unlet b:justloaded
- if &modified && &fileencoding != ""
- call SetupEncoding(&fileencoding)
- endif
+ if &modified && &fileencoding != ""
+ call SetupEncoding(&fileencoding)
+ else
+ redraw
endif
+ autocmd! auto-encoding
+ augroup! auto-encoding
endfunction
-" Magic autocommands installed here
-autocmd BufReadPost * let b:justloaded = 1
+augroup auto-encoding
+autocmd!
autocmd BufWinEnter * call AutoEncoding()
+augroup END
let CONVERT=1
endif
" ----------
-augroup redraw-once
-autocmd!
-" Redraw screen after all macros in ~/.vimrc and ~/.vim/
-autocmd BufReadPost * redraw
-" Remove the redraw autocommand (it's only needed once) and the autgroup
-autocmd BufReadPost * autocmd! redraw-once
-autocmd BufReadPost * augroup! redraw-once
-augroup END
-
" 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