1 " Purpose: My personal .vimrc
4 "Essential resources for vim users
5 " - vim.sf.net -- find tips and scripts for vim and gvim
7 "By calling ":help keyword" you get help for the specific
11 " Pathogen runtime path manipulation
12 "call pathogen#infect() "Using the infect method breaks ft detection
13 call pathogen#runtime_append_all_bundles()
16 "Activate syntax highlighting
18 "Activate filetype plugins: syntax highlighting, indentation, and more
19 filetype plugin indent on
23 set backspace=indent,eol,start
25 "vim-7 and newer has vimspell (spell checker) built in
27 set spelllang=de_at,en
29 "set colorcolumn=80,+1
33 "Set some properties for ctags, grep and the size of the
34 "most-left column for foldings
36 set grepprg=grep\ -nH\ $*
39 "Set incremental search and highlighted search results
44 "Power saving tip: powertop-homepage
45 let &guicursor = &guicursor . ",a:blinkon0"
46 "According to vim help -- enable mouse in xterm...
50 "Open current file with a specific program
52 execute ":!" . a:prog . " % &"
56 " Use the below highlight group when displaying bad whitespace is desired.
57 highlight BadWhitespace ctermbg=red guibg=red
58 " Make trailing whitespace be flagged as bad.
59 au Filetype python,tex,c,cpp,cs,objc,java syn match BadWhitespace /\s\+$/ containedin=ALL
61 set listchars=tab:»,trail:·,eol:$
67 au Filetype * :DetectIndent
68 "au Filetype python,tex,c,cpp,cs,objc,java :DetectIndent
69 "let g:detectindent_preferred_expandtab = 1
70 "let g:detectindent_preferred_indent = 4
76 let g:CSApprox_attr_map = { 'bold' : 'bold', 'italic' : '', 'sp' : '' }
77 colorscheme shuber-wombat
82 """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
84 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
86 "let fortran_free_source=1
87 au BufNewFile *.f90 set fortran_free_source=1
88 au BufRead,BufNewFile *.INC set filetype=fortran
89 au Filetype fortran set cindent cst csto=0
94 """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
96 """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
98 au BufRead,BufNewFile */.irssi/logs/*.log set filetype=irssilog
99 au BufRead,BufNewFile *.weechatlog set filetype=weechatlog
102 """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
103 " Easychair conference system review form
104 """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
106 au BufRead,BufNewFile review_form_*.txt set filetype=easychair
107 au Syntax easychair runtime! syntax/easychair.vim
110 """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
111 " C, C++, C#, objc, java
112 """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
114 au Filetype c,cpp,cs,objc,java map <F4> :cnext <CR>
115 au Filetype c,cpp,cs,objc,java map <S-F4> :cprevious <CR>
116 au Filetype c,cpp,cs,objc,java map <F11> :AS <CR>
117 au Filetype c,cpp,cs,objc,java map <S-F11> :A <CR>
118 au Filetype c,cpp,cs,objc,java set cindent cst csto=0
119 au Filetype c,cpp,cs,objc map <F7> :make <CR>
120 au Filetype java map <F7> :!ant -f ../build.xml <CR>
121 au Filetype c,cpp,cs,obj set makeprg=make
124 "Adds STL prefix 'std::' to 'id'
125 function AddNamespaceDeclTo(ns, id)
126 echo "Add '" . a:ns . "' to " . a:id
127 "Line starts with a:id
128 execute ":%s!^\\(\\s*\\)" . a:id . "\\>!\\1" . a:ns . "::" . a:id . "!e"
129 "Line beginning, white space, not # or / (preprocessor or comment)
130 execute ":%s!^\\(\\s*[^#/].*[^:]\\)\\<" . a:id . "\\>!\\1" . a:ns . "::" . a:id . "!ge"
134 "Adds STL prefix 'std::' to several identifiers
135 function AddSTLNamespaceDecl()
136 call AddNamespaceDeclTo("std","cin")
137 call AddNamespaceDeclTo("std","cout")
138 call AddNamespaceDeclTo("std","cerr")
140 call AddNamespaceDeclTo("std","swap")
141 call AddNamespaceDeclTo("std","sort")
142 call AddNamespaceDeclTo("std","max")
143 call AddNamespaceDeclTo("std","min")
145 call AddNamespaceDeclTo("std","deque")
146 call AddNamespaceDeclTo("std","endl")
147 call AddNamespaceDeclTo("std","list")
148 call AddNamespaceDeclTo("std","map")
149 call AddNamespaceDeclTo("std","multimap")
150 call AddNamespaceDeclTo("std","ostream")
151 call AddNamespaceDeclTo("std","pair")
152 call AddNamespaceDeclTo("std","priority_queue")
153 call AddNamespaceDeclTo("std","set")
154 call AddNamespaceDeclTo("std","queue")
155 call AddNamespaceDeclTo("std","stack")
156 call AddNamespaceDeclTo("std","string")
157 call AddNamespaceDeclTo("std","vector")
161 function EscapeHexToChar()
162 echo 'Call "x/Nxb addr" in GDB to print N bytes at addr'
164 execute '%s/\s*0x\(\x\x\)/\\x\1/g'
165 execute '%s/^\(.*\)$/"\1"/'
170 """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
172 """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
174 au Filetype text set textwidth=80
175 "According to thunderbirds settings
176 au Filetype mail set textwidth=72
178 "a and w reformat the paragraph automatically and a new paragraph
179 "is indicated by lines not ending with white-space
181 au Filetype mail,text set fo+=n spell
185 au Filetype mail syn match Statement /^\s*-*\s*>8\s*-*\s*$/
186 au Filetype mail syn match Statement /^\s*-*\s*8<\s*-*\s*$/
190 """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
192 """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
194 "au Filetype php set fo=tcqn
196 au Filetype php set spell
199 au Filetype php set textwidth=80
200 "au Filetype php set cindent
205 """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
207 """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
209 au BufRead,BufNewFile *.cls set filetype=tex
210 au Filetype tex set textwidth=80
213 function TexTransUmlaute()
214 execute ':%s/ü/\\\"u/ge'
215 execute ':%s/Ü/\\\"U/&'
216 execute ':%s/ö/\\\"o/&'
217 execute ':%s/Ö/\\\"O/&'
218 execute ':%s/ä/\\\"a/&'
219 execute ':%s/Ä/\\\"A/&'
220 execute ':%s/ß/\\\"s/&'
221 execute ':%s/²/\^2/&'
225 function FindWordRepeatings()
226 execute '/\(\<\S\+\>\)\s\+\1\>'
227 " let pos = search('\(\<\S\+\>\)\s\+\1\>', "cw")
232 let g:tex_flavor = "latex"
233 let g:LatexBox_viewer="okular"
234 let g:LatexBox_latexmk_options="-pvc"
236 au Filetype tex set smartindent
238 au Filetype tex map! ,b \begin{}<Esc>i
239 au Filetype tex map! ,e <esc>:call TexClosePrev(0)<cr>a<cr>
240 au Filetype tex map! ,i \begin{itemize}<Return>\end{itemize}<ESC>O\item
241 au Filetype tex map! ,f \begin{frame}<Return>\end{frame}<ESC>O\frametitle{
242 au Filetype tex map! ,p \begin{figure}<Return>\end{figure}<ESC>O\centering<Return>\includegraphics{
247 au Filetype tex set spell
252 """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
254 """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
256 au Filetype python map <F5> :!python % <CR>
259 " vimrc file for following the coding standards specified in PEP 7 & 8.
261 " Number of spaces that a pre-existing tab is equal to.
262 " For the amount of space used for a new tab use shiftwidth.
263 au Filetype python set shiftwidth=4
264 au Filetype python set expandtab
266 " Wrap text after a certain number of characters
267 au BufRead,BufNewFile *.py,*.pyw set textwidth=79
272 """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
274 """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
276 "Opens the current file in ipe
277 au Filetype xml map <M-o> :call OpenIn("ipe") <CR>
280 """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
282 """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
285 au BufRead,BufNewFile *.plt set filetype=gnuplot
286 au BufRead,BufNewFile *.plot set filetype=gnuplot
287 au BufRead,BufNewFile *.gnuplot set filetype=gnuplot
289 "Opens the current file in ipe
290 au Filetype gnuplot map <M-o> :call OpenIn("gnuplot -persist") <CR>
294 """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
296 """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
298 let g:EnhCommentifyUseAltKeys = 'Yes'
302 """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
304 """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
306 "function InsertTabWrapper()
307 " let col = col('.') - 1
308 " if !col || getline('.')[col - 1] !~ '\k'
315 " Remap the tab key to select action with InsertTabWrapper
316 "inoremap <C-space> <c-r>=InsertTabWrapper()<cr>
318 let g:SuperTabMappingForward = "<C-space>"
319 let g:SuperTabDefaultCompletionType = 'context'
320 "let g:SuperTabDefaultCompletionType = '<c-x><c-u>'
324 if filereadable($HOME . "/.vimrc-local")
325 source ~/.vimrc-local