]> ruderich.org/simon Gitweb - config/dotfiles.git/blobdiff - vimrc
vimrc: Add mapping to make last active window the only one.
[config/dotfiles.git] / vimrc
diff --git a/vimrc b/vimrc
index 21958050e78cb60ea04715eb5d448f0dbc816665..fbf5a87cfb4e8f16e589b832493ff7e82ede6979 100644 (file)
--- a/vimrc
+++ b/vimrc
@@ -22,7 +22,7 @@ set wildmode=longest,list
 
 " EDIT SETTINGS
 
-" Enable automatic file detection, plugin and indention.
+" Enable automatic file detection, plugin and indention support.
 if has('autocmd')
     filetype plugin indent on
 endif
@@ -38,7 +38,7 @@ set textwidth=78
 set shiftwidth=4
 set softtabstop=4
 set expandtab
-" When < and > is used indent/deindent to the next shiftwidth boundary.
+" When < and > is used indent/deindent to the next 'shiftwidth' boundary.
 set shiftround
 " Use the default value for real tabs.
 set tabstop=8
@@ -86,16 +86,18 @@ if v:version >= 700 && !&diff
     set spelllang=en_us
 endif
 
-" Allow buffers with changes to be hidden.
+" Allow buffers with changes to be hidden. Very important for effective
+" editing with multiple buffers.
 set hidden
 
 
 " DISPLAY SETTINGS
 
-" Use a dark background.
+" Use a dark background. Doesn't change the background color, only sets text
+" colors for a dark terminal.
 set background=dark
 
-" Activate lines display.
+" Display line numbers.
 set number
 " Display the ruler with current line/file position.
 set ruler
@@ -110,7 +112,15 @@ endif
 " Display tabs, trailing space, non breakable spaces and long lines (when
 " wrapping is enabled).
 set list
-set listchars=trail:-,nbsp:!,extends:>
+set listchars=trail:-,extends:>
+if v:version >= 700
+    set listchars+=nbsp:!
+endif
+
+" Always display the status line even if there is only one window.
+if has('statusline')
+    set laststatus=2
+endif
 
 
 " MAPPINGS (except for plugins, see PLUGIN SETTINGS below)
@@ -131,7 +141,11 @@ nnoremap <Leader>8 :8b<CR>
 nnoremap <Leader>9 :9b<CR>
 nnoremap <Leader>0 :10b<CR>
 
-" Maps to change spell language between English and German and disable it.
+" Make last active window the only window. Similar to <C-w> o.
+nnoremap <C-w>O <C-w>p<C-w>o
+
+" Maps to change spell language between English and German and disable spell
+" checking.
 if v:version >= 700
     map <Leader>sn :set nospell<CR>
     map <Leader>se :set spell spelllang=en_us<CR>
@@ -189,8 +203,9 @@ endif
 if has('syntax')
     syntax enable
 
-" Highlight text longer then 78 characters. Thanks to Tony Mechelynck
+" Highlight lines longer than 78 characters. Thanks to Tony Mechelynck
 " <antoine.mechelynck@gmail.com> from the Vim mailing list.
+" It can easily be disabled if necessary with :2match (in Vim >= 700).
     if v:version >= 700
         2match Todo /\%>78v./
     else
@@ -198,7 +213,7 @@ if has('syntax')
     endif
 
 " Highlight TODO, FIXME, CHANGED and XXX in all documents.
-    if v:version >= 701 && has('patch40')
+    if v:version > 701 || (v:version == 701 && has('patch42'))
         call matchadd('Todo', '\(TODO\|FIXME\|CHANGED\|XXX\)')
     endif
 endif
@@ -228,13 +243,15 @@ if has('autocmd')
             \ if line("'\"") > 1 && line("'\"") <= line("$") |
             \     execute "normal! g'\"" |
             \ endif
+" But not for Git commits, go to beginning of the file.
+        autocmd BufReadPost COMMIT_EDITMSG normal! gg
 
 " AFTER/FTPLUGIN AUTO COMMANDS
 
 " Disable spell checking for files which don't need it.
-        autocmd FileType deb setlocal nospell
+        autocmd FileType deb  setlocal nospell
         autocmd FileType diff setlocal nospell
-        autocmd FileType tar setlocal nospell
+        autocmd FileType tar  setlocal nospell
 " Fix to allow Vim edit crontab files as crontab doesn't work with
 " backupcopy=auto.
         autocmd FileType crontab setlocal backupcopy=yes
@@ -250,7 +267,7 @@ if has('autocmd')
 
 " FTDETECT AUTO COMMANDS
 
-" Recognize .md as markdown files.
+" Recognize .md as markdown files (Vim default is .mkd).
         autocmd BufRead,BufNewFile *.md set filetype=mkd
 " Recognize .test as Tcl files.
         autocmd BufRead,BufNewFile *.test set filetype=tcl