]> git.phdru.name Git - dotfiles.git/blobdiff - .vimrc
.vim: change color; make synload.vim a colorscheme
[dotfiles.git] / .vimrc
diff --git a/.vimrc b/.vimrc
index aed3f7f57d24363fda5e3b5cf943446d311899dc..bc4a54ab55e9fae8ac9c1916511d3d184a35ed3e 100644 (file)
--- a/.vimrc
+++ b/.vimrc
@@ -55,6 +55,7 @@ set sidescroll=1  " The minimal number of columns to scroll horizontally
 
 " 5 highlighting
 
+colorscheme phd
 set nohlsearch    " Stop the search highlighting
 
 " 6 multiple windows
@@ -71,6 +72,10 @@ set ttyfast       " terminal connection is fast
 
 set title         " Set title to the value of 'titlestring' or to 'filename - VIM'
 set titleold=     " string to restore the title to when exiting Vim
+" String to use for the Vim window title; with statusline printf items:
+" display filename, modification flag, full path, argument list status,
+" the current user, host and program name (to distinguish vim/view/etc).
+set titlestring=%t%(\ %M%)%(\ (%{expand(\"%:p:h\")})%)%(\ %a%)\ -\ [%{$USER}@%{hostname()}]\ %{v:progname}
 
 " 9 using the mouse
 
@@ -111,7 +116,25 @@ set noautoindent  " Do not automatically set the indent of a new line
 
 " 18 mapping
 
-set timeout timeoutlen=3000 " allow timing out up to 3 seconds halfway into a mapping
+set timeout timeoutlen=3000 ttimeoutlen=100 " allow timing out up to 3 seconds halfway into a mapping; 100 ms to wait for a key code or mapped key sequence to complete
+
+" 19 reading and writing files
+if v:version >= 703
+   set cryptmethod=blowfish " encryption method for file writing: zip or blowfish
+endif
+
+" 20 the swap file
+
+" list of directories for the swap file; remove . (the current directory)
+if has("win32")
+   set directory=$TEMP//,c:/tmp//,c:/temp//
+else
+   set directory=~/tmp//,/var/tmp//,/tmp//
+endif
+" if a directory ends in two path separators "//"
+" or "\\", the swap file name will be built from the complete path to
+" the file with all path separators substituted to percent '%' signs.
+" This will ensure file name uniqueness in the preserve directory.
 
 " 21 command line editing
 
@@ -169,25 +192,12 @@ if has("gui_running")
       set toolbar=icons,text " how to show the toolbar
    endif
 
-   set guicursor+=a:blinkon0 " Stop cursor blinking
+   set guicursor+=a:blinkon0 " Stop cursor blinking
 
    " Make shift-insert work like in Xterm
    " map <S-Insert> <MiddleMouse>
    " map! <S-Insert> <MiddleMouse>
 
-
-   " Set nice colors
-   " Background for normal text is light grey
-   " Cursor is green
-   " Text below the last line is darker grey
-   " Status line is bright white on blue
-   highlight Normal guibg=grey90
-   highlight Cursor guibg=green guifg=NONE
-   highlight NonText guibg=grey80
-   highlight Constant guibg=grey90
-   highlight Special gui=NONE guibg=grey90
-   highlight StatusLine gui=bold guifg=white guibg=blue
-
    " ----------
    " From http://slobin.pp.ru/vim/_vimrc.html
 
@@ -198,8 +208,8 @@ if has("gui_running")
    " The <CR> key should select from completion menu without adding a newline
    imap <expr> <CR> pumvisible() ? "<C-Y>" : "<CR>"
    " ----------
-else
 
+else
    if (&term =~ "linux") || ($BACKGROUND == 'DARK') || ($BACKGROUND == 'dark')
          \ || has("win32")
       " Background of the terminal is black or dark grey
@@ -209,14 +219,11 @@ else
    endif
 
    if (&term =~ "linux")
-      set <BS>=\7f
-   else
-      highlight MoreMsg cterm=bold ctermfg=NONE
-      highlight Question cterm=bold ctermfg=NONE
+      execute 'set t_kb=' . nr2char(127)
    endif
 
-   if (&term =~ "term") || (&term =~ "rxvt") || (&term =~ "vt100") || (&term =~ "screen")
-      set <BS>=\7f
+   if (&term =~ "rxvt") || (&term =~ "screen") || (&term =~ "term") || (&term =~ "vt100")
+      execute 'set t_kb=' . nr2char(127)
 
       " 'autoselect' to always put selected text on the clipboard;
       " 'unnamed' to use the * register like unnamed register '*'
@@ -236,7 +243,7 @@ else
    endif
 
    if (&term =~ "screen")
-      set ttymouse=xterm " Enable mouse codes under GNU screen
+      set ttymouse=xterm2 " Enable mouse codes under screen/tmux
       if empty(&t_ts)
          " Enable window title under screen/tmux
          let &t_ts = "\e]2;"
@@ -245,10 +252,6 @@ else
    endif
 endif
 
-highlight SpellBad term=underline cterm=NONE ctermfg=white ctermbg=red guifg=white guibg=red " gui=undercurl guisp=red
-highlight StatusLine cterm=bold ctermfg=white ctermbg=blue gui=NONE guifg=white guibg=blue
-highlight Visual cterm=NONE ctermfg=white ctermbg=blue gui=NONE guifg=white guibg=blue " Selection highlighting
-
 " Multiline comments often confuse vim syntax highlighting - these maps
 " allow to resynchronize; the first is faster, the second is more thorough
 nmap \sc :syntax sync clear<Enter>
@@ -260,6 +263,8 @@ nmap \ss :syntax sync fromstart<Enter>
 " Enable filetype detection
 filetype plugin indent on
 
+runtime macros/matchit.vim
+
 " Reread me after editing
 autocmd BufWritePost ~/.vimrc source ~/.vimrc | syntax on
 
@@ -274,14 +279,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 +294,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 +474,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 +566,21 @@ 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)
+  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
@@ -725,6 +730,5 @@ command! UName call Uname()
 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