--- /dev/null
+" 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.
+
+
+
+"Activate filetype plugins: syntax highlighting, indentation, and more
+filetype plugin on
+filetype indent on
+filetype on
+
+set modeline
+
+set autoindent
+"set tabstop=4
+set number
+set bs=2
+
+"vim-7 and newer has vimspell (spell checker) built in
+if version >= 703
+ set spelllang=de_at,en
+ set tabpagemax=20
+ set colorcolumn=80,+1
+endif
+
+"Set some properties for ctags, grep and the size of the
+"most-left column for foldings
+set tagstack
+set grepprg=grep\ -nH\ $*
+set foldcolumn=1
+
+"Set incremental search and highlighted search results
+set incsearch
+set hlsearch
+
+
+"Activate syntax highlighting
+syntax on
+
+"Power saving tip: powertop-homepage
+let &guicursor = &guicursor . ",a:blinkon0"
+"According to vim help -- enable mouse in xterm...
+set mouse=a
+
+
+"Open current file with a specific program
+function OpenIn(prog)
+ execute ":!" . a:prog . " % &"
+endfunction
+
+
+" 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
+
+" set list to activate
+set listchars=tab:»,trail:·,eol:$
+
+
+" Pathogen runtime path manipulation
+call pathogen#infect()
+
+
+"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
+" fortran
+""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
+
+"let fortran_free_source=1
+au BufNewFile *.f90 set fortran_free_source=1
+au BufRead,BufNewFile *.INC set filetype=fortran
+au Filetype fortran set cindent cst csto=0
+
+
+
+
+"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
+" IRSSI logs
+"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
+
+au BufRead,BufNewFile */.irssi/logs/*.log set filetype=irssilog
+
+
+"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
+" Easychair conference system review form
+"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
+
+au BufRead,BufNewFile review_form_*.txt set filetype=easychair
+au Syntax easychair runtime! syntax/easychair.vim
+
+
+"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
+" C, C++, C#, objc, java
+"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
+
+au Filetype c,cpp,cs,objc,java map <F4> :cnext <CR>
+au Filetype c,cpp,cs,objc,java map <S-F4> :cprevious <CR>
+au Filetype c,cpp,cs,objc,java map <F11> :AS <CR>
+au Filetype c,cpp,cs,objc,java map <S-F11> :A <CR>
+au Filetype c,cpp,cs,objc,java set cindent cst csto=0
+au Filetype c,cpp,cs,objc map <F7> :make <CR>
+au Filetype java map <F7> :!ant -f ../build.xml <CR>
+au Filetype c,cpp,cs,obj set makeprg=make
+au Filetype c,cpp,cs,obj set tabstop=4
+au Filetype c,cpp,cs,obj set shiftwidth=4
+
+
+"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
+
+"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
+
+
+
+"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
+" 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
+
+au Filetype tex set tabstop=4
+au Filetype tex set shiftwidth=4
+
+au Filetype tex map! ,b \begin{}<Esc>i
+au Filetype tex map! ,e <esc>:call TexClosePrev(0)<cr>a<cr>
+au Filetype tex map! ,i \begin{itemize}<Return>\end{itemize}<ESC>O\item
+au Filetype tex map! ,f \begin{frame}<Return>\end{frame}<ESC>O\frametitle{
+au Filetype tex map! ,p \begin{figure}<Return>\end{figure}<ESC>O\centering<Return>\includegraphics{
+
+
+
+if version >= 700
+ au Filetype tex set spell
+endif
+
+
+
+"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
+" python
+"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
+
+au Filetype python map <F5> :!python % <CR>
+
+
+" 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 tabstop=4
+au Filetype python set shiftwidth=4
+au Filetype python set expandtab
+
+" Wrap text after a certain number of characters
+au BufRead,BufNewFile *.py,*.pyw set textwidth=79
+
+
+
+
+"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
+" XML, Ipe
+"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
+
+"Opens the current file in ipe
+au Filetype xml map <M-o> :call OpenIn("ipe") <CR>
+
+
+"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
+" gnuplot
+"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
+
+
+au BufRead,BufNewFile *.plt set filetype=gnuplot
+au BufRead,BufNewFile *.plot set filetype=gnuplot
+au BufRead,BufNewFile *.gnuplot set filetype=gnuplot
+
+"Opens the current file in ipe
+au Filetype gnuplot map <M-o> :call OpenIn("gnuplot -persist") <CR>
+
+
+
+"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
+" Commenting
+"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
+
+let g:EnhCommentifyUseAltKeys = 'Yes'
+
+
+
+"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
+" Tab completion
+"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
+
+"function InsertTabWrapper()
+" let col = col('.') - 1
+" if !col || getline('.')[col - 1] !~ '\k'
+" return "\<tab>"
+" else
+" return "\<c-p>"
+" endif
+"endfunction
+
+" Remap the tab key to select action with InsertTabWrapper
+"inoremap <C-space> <c-r>=InsertTabWrapper()<cr>
+
+let g:SuperTabMappingForward = "<C-space>"
+let g:SuperTabDefaultCompletionType = 'context'
+"let g:SuperTabDefaultCompletionType = '<c-x><c-u>'
+
+
+source ~/.vimrc-local
+
+