"=================================================================================== " FILE: .vimrc " DESCRIPTION: suggestion for a personal configuration file ~/.vimrc " AUTHOR: Dr.-Ing. Fritz Mehner " CREATED: 04.04.2009 " REVISION: $Id: customization.vimrc,v 1.6 2009/10/03 12:24:30 mehner Exp $ "=================================================================================== " "=================================================================================== " GENERAL SETTINGS "=================================================================================== "------------------------------------------------------------------------------- " Use Vim settings, rather then Vi settings. " This must be first, because it changes other options as a side effect. "------------------------------------------------------------------------------- set nocompatible " "------------------------------------------------------------------------------- " Enable file type detection. Use the default filetype settings. " Also load indent files, to automatically do language-dependent indenting. "------------------------------------------------------------------------------- filetype plugin on filetype indent on " "------------------------------------------------------------------------------- " Switch syntax highlighting on. "------------------------------------------------------------------------------- syntax on " " Platform specific items: " - central backup directory (has to be created) " - default dictionary " Uncomment your choice. if has("win16") || has("win32") || has("win64") || \ has("win95") || has("win32unix") " " runtime mswin.vim " set backupdir =$VIM\vimfiles\backupdir " set dictionary=$VIM\vimfiles\wordlists/german.list else " set backupdir =$HOME/.vim.backupdir " set dictionary=$HOME/.vim/wordlists/german.list endif " " Using a backupdir under UNIX/Linux: you may want to include a line similar to " find $HOME/.vim.backupdir -name "*" -type f -mtime +60 -exec rm -f {} \; " in one of your shell startup files (e.g. $HOME/.profile) " "------------------------------------------------------------------------------- " Various settings "------------------------------------------------------------------------------- set autoindent " copy indent from current line set autoread " read open files again when changed outside Vim set autowrite " write a modified buffer on each :next , ... set backspace=indent,eol,start " backspacing over everything in insert mode set backup " keep a backup file set browsedir=current " which directory to use for the file browser set complete+=k " scan the files given with the 'dictionary' option set history=50 " keep 50 lines of command line history set hlsearch " highlight the last used search pattern set incsearch " do incremental searching set listchars=tab:>.,eol:\$ " strings to use in 'list' mode set mouse=a " enable the use of the mouse set nowrap " do not wrap lines set popt=left:8pc,right:3pc " print options set ruler " show the cursor position all the time set shiftwidth=2 " number of spaces to use for each step of indent set showcmd " display incomplete commands set smartindent " smart autoindenting when starting a new line set tabstop=2 " number of spaces that a counts for set visualbell " visual bell instead of beeping set wildignore=*.bak,*.o,*.e,*~ " wildmenu: ignore these extensions set wildmenu " command-line completion in an enhanced mode " "=================================================================================== " BUFFERS, WINDOWS "=================================================================================== " "------------------------------------------------------------------------------- " The current directory is the directory of the file in the current window. "------------------------------------------------------------------------------- if has("autocmd") autocmd BufEnter * :lchdir %:p:h endif " "------------------------------------------------------------------------------- " close window (conflicts with the KDE setting for calling the process manager) "------------------------------------------------------------------------------- noremap :close inoremap :close " "------------------------------------------------------------------------------- " Fast switching between buffers " The current buffer will be saved before switching to the next one. " Choose :bprevious or :bnext "------------------------------------------------------------------------------- noremap :if &modifiable && !&readonly && \ &modified :write :endif:bprevious inoremap :if &modifiable && !&readonly && \ &modified :write :endif:bprevious " "------------------------------------------------------------------------------- " Leave the editor with Ctrl-q (KDE): Write all changed buffers and exit Vim "------------------------------------------------------------------------------- nnoremap :wqall " "------------------------------------------------------------------------------- " When editing a file, always jump to the last known cursor position. " Don't do it when the position is invalid or when inside an event handler " (happens when dropping a file on gvim). "------------------------------------------------------------------------------- if has("autocmd") autocmd BufReadPost * \ if line("'\"") > 0 && line("'\"") <= line("$") | \ exe "normal! g`\"" | \ endif endif " has("autocmd") " "------------------------------------------------------------------------------- " some additional hot keys "------------------------------------------------------------------------------- " F2 - write file without confirmation " F3 - call file explorer Ex " F4 - show tag under curser in the preview window (tagfile must exist!) " F5 - open quickfix error window " F6 - close quickfix error window " F7 - display previous error " F8 - display next error "------------------------------------------------------------------------------- " map :write map :Explore nmap :exe ":ptag ".expand("") map :copen map :cclose map :cp map :cn " imap :write imap :Explore imap :exe ":ptag ".expand("") imap :copen imap :cclose imap :cp imap :cn " "------------------------------------------------------------------------------- " Fast switching between buffers " The current buffer will be saved before switching to the next one. " Choose :bprevious or :bnext "------------------------------------------------------------------------------- " map :if &modifiable && !&readonly && \ &modified :write :endif:bprevious imap :if &modifiable && !&readonly && \ &modified :write :endif:bprevious " "------------------------------------------------------------------------------- " Leave the editor with Ctrl-q : Write all changed buffers and exit Vim "------------------------------------------------------------------------------- nmap :wqa " "------------------------------------------------------------------------------- " comma always followed by a space "------------------------------------------------------------------------------- inoremap , , " "------------------------------------------------------------------------------- " autocomplete parenthesis, brackets and braces "------------------------------------------------------------------------------- inoremap ( () inoremap [ [] inoremap { {} " vnoremap ( s()P% vnoremap [ s[]P% vnoremap { s{}P% " "------------------------------------------------------------------------------- " autocomplete quotes (visual and select mode) "------------------------------------------------------------------------------- xnoremap ' s''P xnoremap " s""P xnoremap ` s``P " "------------------------------------------------------------------------------- " Change the working directory to the directory containing the current file "------------------------------------------------------------------------------- if has("autocmd") autocmd BufEnter * :lchdir %:p:h endif " has("autocmd") " "=================================================================================== " VARIOUS PLUGIN CONFIGURATIONS "=================================================================================== " "------------------------------------------------------------------------------- " c.vim "------------------------------------------------------------------------------- " " --empty -- " "------------------------------------------------------------------------------- " taglist.vim : toggle the taglist window " taglist.vim : define the title texts for make " taglist.vim : define the title texts for qmake "------------------------------------------------------------------------------- noremap :Tlist inoremap :Tlist let Tlist_GainFocus_On_ToggleOpen = 1 let Tlist_Close_On_Select = 1 let tlist_make_settings = 'make;m:makros;t:targets' let tlist_qmake_settings = 'qmake;t:SystemVariables' if has("autocmd") " ---------- qmake : set filetype for *.pro ---------- autocmd BufNewFile,BufRead *.pro set filetype=qmake endif " has("autocmd")