" Purpose: My personal .vimrc " Author: Stefan Huber " "Essential resources for vim users " - vim.sf.net -- find tips and scripts for vim and gvim " "By calling ":help keyword" you get help for the specific "option and setting. set nocompatible set encoding=utf8 set modeline set number set backspace=indent,eol,start set tagstack set grepprg=grep\ -nH\ $* set foldcolumn=1 set incsearch set hlsearch set cursorline set laststatus=2 set listchars=tab:»­,trail:·,eol:$ set autoindent set tabstop=4 set shiftwidth=4 if version >= 703 set spelllang=de_at,en set tabpagemax=20 set colorcolumn=+1 endif " Pathogen runtime path manipulation "call pathogen#infect() "Using the infect method breaks ft detection filetype off call pathogen#runtime_append_all_bundles() call pathogen#helptags() syntax on filetype plugin indent on "Power saving tip: powertop-homepage let &guicursor = &guicursor . ",a:blinkon0" "According to vim help -- enable mouse in xterm... set mouse=a " Use 256 colors set t_Co=256 let g:CSApprox_attr_map = { 'bold' : 'bold', 'italic' : '', 'sp' : '' } colorscheme shuber-wombat " Use the below highlight group when displaying bad whitespace is desired. highlight BadWhitespace ctermbg=red guibg=red " Make trailing whitespace be flagged as bad. au Filetype python,tex,c,cpp,cs,objc,java syn match BadWhitespace /\s\+$/ containedin=ALL if exists(":DetectIndent") au BufReadPost * :DetectIndent endif let g:syntastic_mode_map = { 'mode' : 'active', 'active_filetypes' : [], 'passive_filetypes' : ['html'] } """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " Some macros """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" "Open current file with a specific program function OpenIn(prog) execute ":!" . a:prog . " % &" endfunction """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " key bindings """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" map NERDCommenterToggle nmap :q nmap :w vmap gv imap """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " fortran """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" "let fortran_free_source=1 au BufNewFile *.f90 set fortran_free_source=1 au Filetype fortran set cindent cst csto=0 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " C, C++, C#, objc, java """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" au Filetype c,cpp,cs,objc,java map :cnext au Filetype c,cpp,cs,objc,java map :cprevious au Filetype c,cpp,cs,objc,java map :AS au Filetype c,cpp,cs,objc,java map :A au Filetype c,cpp,cs,objc,java set cindent cst csto=0 au Filetype c,cpp,cs,objc map :make au Filetype java map :!ant -f ../build.xml au Filetype c,cpp,cs,obj set makeprg=make "Adds STL prefix 'std::' to 'id' function AddNamespaceDeclTo(ns, id) echo "Add '" . a:ns . "' to " . a:id "Line starts with a:id execute ":%s!^\\(\\s*\\)" . a:id . "\\>!\\1" . a:ns . "::" . a:id . "!e" "Line beginning, white space, not # or / (preprocessor or comment) execute ":%s!^\\(\\s*[^#/].*[^:]\\)\\<" . a:id . "\\>!\\1" . a:ns . "::" . a:id . "!ge" endfunction "Adds STL prefix 'std::' to several identifiers function AddSTLNamespaceDecl() call AddNamespaceDeclTo("std","cin") call AddNamespaceDeclTo("std","cout") call AddNamespaceDeclTo("std","cerr") call AddNamespaceDeclTo("std","swap") call AddNamespaceDeclTo("std","sort") call AddNamespaceDeclTo("std","max") call AddNamespaceDeclTo("std","min") call AddNamespaceDeclTo("std","deque") call AddNamespaceDeclTo("std","endl") call AddNamespaceDeclTo("std","list") call AddNamespaceDeclTo("std","map") call AddNamespaceDeclTo("std","multimap") call AddNamespaceDeclTo("std","ostream") call AddNamespaceDeclTo("std","pair") call AddNamespaceDeclTo("std","priority_queue") call AddNamespaceDeclTo("std","set") call AddNamespaceDeclTo("std","queue") call AddNamespaceDeclTo("std","stack") call AddNamespaceDeclTo("std","string") call AddNamespaceDeclTo("std","vector") endfunction function EscapeHexToChar() echo 'Call "x/Nxb addr" in GDB to print N bytes at addr' execute '%s/^.*://' execute '%s/\s*0x\(\x\x\)/\\x\1/g' execute '%s/^\(.*\)$/"\1"/' endfunction """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " Text and mail """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" au Filetype text set textwidth=80 "According to thunderbirds settings au Filetype mail set textwidth=72 au Filetype mail set expandtab "a and w reformat the paragraph automatically and a new paragraph "is indicated by lines not ending with white-space if version>=700 au Filetype mail,text set fo+=n spell endif "Scissor line au Filetype mail syn match Statement /^\s*-*\s*>8\s*-*\s*$/ au Filetype mail syn match Statement /^\s*-*\s*8<\s*-*\s*$/ """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " PHP """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" "au Filetype php set fo=tcqn if version >= 700 au Filetype php set spell endif au Filetype php set textwidth=80 "au Filetype php set cindent """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " LaTeX """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" au BufRead,BufNewFile *.cls set filetype=tex au Filetype tex set textwidth=80 "Remove Umlaute function TexTransUmlaute() execute ':%s/ü/\\\"u/ge' execute ':%s/Ü/\\\"U/&' execute ':%s/ö/\\\"o/&' execute ':%s/Ö/\\\"O/&' execute ':%s/ä/\\\"a/&' execute ':%s/Ä/\\\"A/&' execute ':%s/ß/\\\"s/&' execute ':%s/²/\^2/&' endfunction function FindWordRepeatings() execute '/\(\<\S\+\>\)\s\+\1\>' " let pos = search('\(\<\S\+\>\)\s\+\1\>', "cw") " call cursor(pos) endfunction let g:tex_flavor = "latex" let g:LatexBox_viewer="okular" let g:LatexBox_latexmk_options="-pvc" au Filetype tex set smartindent if version >= 700 au Filetype tex set spell endif """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " python """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" au Filetype python map :!python % " vimrc file for following the coding standards specified in PEP 7 & 8. " Number of spaces that a pre-existing tab is equal to. " For the amount of space used for a new tab use shiftwidth. au Filetype python set shiftwidth=4 au Filetype python set expandtab " Wrap text after a certain number of characters au Filetype python set textwidth=79 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " XML, Ipe """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" "Opens the current file in ipe au Filetype xml map :call OpenIn("ipe") """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " gnuplot """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" "Opens the current file in ipe au Filetype gnuplot map :call OpenIn("gnuplot -persist") """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " youcompleteme """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" let g:ycm_min_num_of_chars_for_completion = 999 let g:ycm_key_list_select_completion = [''] if filereadable($HOME . "/.vimrc-local") source ~/.vimrc-local endif