]> git.phdru.name Git - dotfiles.git/blobdiff - .vimrc
Set LESS_TERMCAP_* for light and dark backgrounds
[dotfiles.git] / .vimrc
diff --git a/.vimrc b/.vimrc
index c7c26bddb2db44c57dc8bd11d391bf297e72ad25..f7404f702f8ec8eb550357bdc8b25dbad9188a41 100644 (file)
--- a/.vimrc
+++ b/.vimrc
@@ -209,14 +209,14 @@ else
    endif
 
    if (&term =~ "linux")
-      set <BS>=\7f
+      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")
-      set <BS>=\7f
+      execute 'set t_kb=' . nr2char(127)
 
       " 'autoselect' to always put selected text on the clipboard;
       " 'unnamed' to use the * register like unnamed register '*'
@@ -274,14 +274,14 @@ autocmd BufReadPost * syntax on
 
 " 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)
@@ -289,15 +289,13 @@ autocmd BufReadPost * call RestorePosition()
 
 
 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
 
 
@@ -471,7 +469,7 @@ if version >= 700
 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']
@@ -563,19 +561,19 @@ endif
 
 
 " 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)
   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
@@ -725,7 +723,14 @@ command! UName call Uname()
 endif
 " ----------
 
-autocmd BufReadPost * redraw " Redraw screen after all macros
+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 group
+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