]> ruderich.org/simon Gitweb - config/dotfiles.git/blobdiff - vimrc
vimrc: Minor documentation update.
[config/dotfiles.git] / vimrc
diff --git a/vimrc b/vimrc
index f98c379a4c46e88918934908e69a4d0d563510ce..5993bff360d6dea7766e06e228b16d6e293da2d7 100644 (file)
--- a/vimrc
+++ b/vimrc
@@ -137,6 +137,15 @@ if has('eval')
 endif
 
 
+" TERMINAL SETTINGS
+
+" Also enable fast terminal mode in GNU screen and tmux, but not for SSH
+" connections.
+if &term =~# '^screen' && !exists('$SSH_CONNECTION')
+    set ttyfast
+endif
+
+
 " EDIT SETTINGS
 
 " Enable automatic file detection, plugin and indention support.
@@ -224,6 +233,11 @@ endif
 " (add ! to override)" warning when switching buffers.
 set hidden
 
+" When splitting vertically put the new window right of the current one.
+if has('vertsplit')
+    set splitright
+endif
+
 
 " DISPLAY SETTINGS
 
@@ -291,7 +305,7 @@ if has('statusline')
     " If there's more than one buffer return "/<nr>" (e.g. "/05") where <nr>
     " is the highest buffer number, otherwise return nothing. Used in
     " 'statusline' to get an overview of available buffer numbers.
-    function! StatuslineBufferCount()
+    function! s:StatuslineBufferCount()
         let l:bufnr = bufnr('$')
         if l:bufnr > 1
             let l:result = '/'
@@ -314,7 +328,7 @@ if has('statusline')
     " Like %f but use relative filename if it's shorter than the absolute path
     " (e.g. '../../file' vs. '~/long/path/to/file'). fnamemodify()'s ':.' is
     " not enough because it doesn't create '../'s.
-    function! StatuslineRelativeFilename()
+    function! s:StatuslineRelativeFilename()
         " Display only filename for help files.
         if &buftype == 'help'
             return expand('%:t')
@@ -374,7 +388,7 @@ if has('statusline')
     endfunction
 
     " Return current syntax group in brackets or nothing if there's none.
-    function! StatuslineSyntaxGroup()
+    function! s:StatuslineSyntaxGroup()
         let l:group = synIDattr(synID(line('.'), col('.'), 1), 'name')
         if l:group != ''
             return '[' . l:group . '] '
@@ -383,22 +397,33 @@ if has('statusline')
         endif
     endfunction
 
+    " Short function names to make 'statusline' more readable.
+    function! SBC()
+        return <SID>StatuslineBufferCount()
+    endfunction
+    function! SRF()
+        return <SID>StatuslineRelativeFilename()
+    endfunction
+    function! SSG()
+        return <SID>StatuslineSyntaxGroup()
+    endfunction
+
     set statusline=
     " on the left
-    set statusline+=%02n  " buffer number
-    set statusline+=%{StatuslineBufferCount()} " highest buffer number
+    set statusline+=%02n              " buffer number
+    set statusline+=%{SBC()}          " highest buffer number
     set statusline+=:
     if has('modify_fname') && v:version >= 700 " some functions need 7.0
-        set statusline+=%{StatuslineRelativeFilename()} " path to current file
-        set statusline+=\     " space after path
+        set statusline+=%{SRF()}      " path to current file
+        set statusline+=\             " space after path
     else
-        set statusline+=%f\   " path to current file in buffer
+        set statusline+=%f\           " path to current file in buffer
     endif
-    set statusline+=%h    " [help] if buffer is help file
-    set statusline+=%w    " [Preview] if buffer is preview buffer
-    set statusline+=%m    " [+] if buffer was modified,
-                          " [-] if 'modifiable' is off
-    set statusline+=%r    " [RO] if buffer is read only
+    set statusline+=%h                " [help] if buffer is help file
+    set statusline+=%w                " [Preview] if buffer is preview buffer
+    set statusline+=%m                " [+] if buffer was modified,
+                                      " [-] if 'modifiable' is off
+    set statusline+=%r                " [RO] if buffer is read only
 
     " on the right
     set statusline+=%=                " right align
@@ -559,7 +584,7 @@ nnoremap <silent> <Leader>; :call setline(line('.'), getline('.') . ';')<CR>
 " and all nerds involved (godlygeek, strull in #vim on Freenode).
 if has('eval')
     function! s:VSetSearch()
-        let l:temp = @@
+        let l:temp = @@ " unnamed register
         normal! gvy
         " Added \C to force 'noignorecase' while searching the current visual
         " selection. I want to search for the exact string in this case.
@@ -769,6 +794,10 @@ if has('syntax')
     let g:perl_fold_blocks = 1
     let g:perl_nofold_packages = 1
     let g:perl_include_pod = 1 " syntax coloring for PODs
+    " PHP.
+    let g:php_folding = 3    " fold functions
+    let g:php_short_tags = 0 " no short tags (<? .. ?>), not always usable
+    let g:php_sql_query = 1  " highlight SQL queries in strings
     " Python.
     let g:python_highlight_all = 1
     " Shell.
@@ -874,10 +903,10 @@ if has('autocmd')
             autocmd InsertLeave * set nopaste
         endif
 
-" Write file when running :mak[e] before 'makeprg' is called. QuickFixCmdPre
-" doesn't exist in older Vims.
+" Write all files when running :mak[e] before 'makeprg' is called.
+" QuickFixCmdPre doesn't exist in older Vims.
         if exists('##QuickFixCmdPre')
-            autocmd QuickFixCmdPre * write
+            autocmd QuickFixCmdPre * wall
         endif
 
 " Don't ignore case while in insert mode, but ignore case in all other modes.
@@ -900,9 +929,7 @@ if has('autocmd')
                 return
             endif
 
-            echohl WarningMsg
-            echo 'Do not edit this file! (Maybe a template file.)'
-            echohl None
+            echoerr 'Do not edit this file! (Maybe a template file.)'
         endfunction
         autocmd BufRead * call <SID>SearchForDoNotEditHeader()