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
32 "Set some properties for ctags, grep and the size of the
33 "most-left column for foldings
35 set grepprg=grep\ -nH\ $*
38 "Set incremental search and highlighted search results
43 "Power saving tip: powertop-homepage
44 let &guicursor = &guicursor . ",a:blinkon0"
45 "According to vim help -- enable mouse in xterm...
49 "Open current file with a specific program
51 execute ":!" . a:prog . " % &"
55 " Use the below highlight group when displaying bad whitespace is desired.
56 highlight BadWhitespace ctermbg=red guibg=red
57 " Make trailing whitespace be flagged as bad.
58 au Filetype python,tex,c,cpp,cs,objc,java syn match BadWhitespace /\s\+$/ containedin=ALL
60 set listchars=tab:»,trail:·,eol:$
65 au Filetype python,tex,c,cpp,cs,objc,java :DetectIndent
66 "let g:detectindent_preferred_expandtab = 1
67 "let g:detectindent_preferred_indent = 4
73 let g:CSApprox_attr_map = { 'bold' : 'bold', 'italic' : '', 'sp' : '' }
74 colorscheme shuber-wombat
79 """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
81 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
83 "let fortran_free_source=1
84 au BufNewFile *.f90 set fortran_free_source=1
85 au BufRead,BufNewFile *.INC set filetype=fortran
86 au Filetype fortran set cindent cst csto=0
91 """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
93 """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
95 au BufRead,BufNewFile */.irssi/logs/*.log set filetype=irssilog
98 """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
99 " Easychair conference system review form
100 """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
102 au BufRead,BufNewFile review_form_*.txt set filetype=easychair
103 au Syntax easychair runtime! syntax/easychair.vim
106 """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
107 " C, C++, C#, objc, java
108 """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
110 au Filetype c,cpp,cs,objc,java map <F4> :cnext <CR>
111 au Filetype c,cpp,cs,objc,java map <S-F4> :cprevious <CR>
112 au Filetype c,cpp,cs,objc,java map <F11> :AS <CR>
113 au Filetype c,cpp,cs,objc,java map <S-F11> :A <CR>
114 au Filetype c,cpp,cs,objc,java set cindent cst csto=0
115 au Filetype c,cpp,cs,objc map <F7> :make <CR>
116 au Filetype java map <F7> :!ant -f ../build.xml <CR>
117 au Filetype c,cpp,cs,obj set makeprg=make
118 au Filetype c,cpp,cs,obj set shiftwidth=4
121 "Adds STL prefix 'std::' to 'id'
122 function AddNamespaceDeclTo(ns, id)
123 echo "Add '" . a:ns . "' to " . a:id
124 "Line starts with a:id
125 execute ":%s!^\\(\\s*\\)" . a:id . "\\>!\\1" . a:ns . "::" . a:id . "!e"
126 "Line beginning, white space, not # or / (preprocessor or comment)
127 execute ":%s!^\\(\\s*[^#/].*[^:]\\)\\<" . a:id . "\\>!\\1" . a:ns . "::" . a:id . "!ge"
131 "Adds STL prefix 'std::' to several identifiers
132 function AddSTLNamespaceDecl()
133 call AddNamespaceDeclTo("std","cin")
134 call AddNamespaceDeclTo("std","cout")
135 call AddNamespaceDeclTo("std","cerr")
137 call AddNamespaceDeclTo("std","swap")
138 call AddNamespaceDeclTo("std","sort")
139 call AddNamespaceDeclTo("std","max")
140 call AddNamespaceDeclTo("std","min")
142 call AddNamespaceDeclTo("std","deque")
143 call AddNamespaceDeclTo("std","endl")
144 call AddNamespaceDeclTo("std","list")
145 call AddNamespaceDeclTo("std","map")
146 call AddNamespaceDeclTo("std","multimap")
147 call AddNamespaceDeclTo("std","ostream")
148 call AddNamespaceDeclTo("std","pair")
149 call AddNamespaceDeclTo("std","priority_queue")
150 call AddNamespaceDeclTo("std","set")
151 call AddNamespaceDeclTo("std","queue")
152 call AddNamespaceDeclTo("std","stack")
153 call AddNamespaceDeclTo("std","string")
154 call AddNamespaceDeclTo("std","vector")
158 function EscapeHexToChar()
159 echo 'Call "x/Nxb addr" in GDB to print N bytes at addr'
161 execute '%s/\s*0x\(\x\x\)/\\x\1/g'
162 execute '%s/^\(.*\)$/"\1"/'
167 """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
169 """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
171 au Filetype text set textwidth=80
172 "According to thunderbirds settings
173 au Filetype mail set textwidth=72
175 "a and w reformat the paragraph automatically and a new paragraph
176 "is indicated by lines not ending with white-space
178 au Filetype mail,text set fo+=n spell
182 au Filetype mail syn match Statement /^\s*-*\s*>8\s*-*\s*$/
183 au Filetype mail syn match Statement /^\s*-*\s*8<\s*-*\s*$/
187 """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
189 """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
191 "au Filetype php set fo=tcqn
193 au Filetype php set spell
196 au Filetype php set textwidth=80
197 "au Filetype php set cindent
202 """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
204 """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
206 au BufRead,BufNewFile *.cls set filetype=tex
207 au Filetype tex set textwidth=80
210 function TexTransUmlaute()
211 execute ':%s/ü/\\\"u/ge'
212 execute ':%s/Ü/\\\"U/&'
213 execute ':%s/ö/\\\"o/&'
214 execute ':%s/Ö/\\\"O/&'
215 execute ':%s/ä/\\\"a/&'
216 execute ':%s/Ä/\\\"A/&'
217 execute ':%s/ß/\\\"s/&'
218 execute ':%s/²/\^2/&'
222 function FindWordRepeatings()
223 execute '/\(\<\S\+\>\)\s\+\1\>'
224 " let pos = search('\(\<\S\+\>\)\s\+\1\>', "cw")
229 let g:tex_flavor = "latex"
230 let g:LatexBox_viewer="okular"
231 let g:LatexBox_latexmk_options="-pvc"
233 au Filetype tex set smartindent
235 au Filetype tex set shiftwidth=4
237 au Filetype tex map! ,b \begin{}<Esc>i
238 au Filetype tex map! ,e <esc>:call TexClosePrev(0)<cr>a<cr>
239 au Filetype tex map! ,i \begin{itemize}<Return>\end{itemize}<ESC>O\item
240 au Filetype tex map! ,f \begin{frame}<Return>\end{frame}<ESC>O\frametitle{
241 au Filetype tex map! ,p \begin{figure}<Return>\end{figure}<ESC>O\centering<Return>\includegraphics{
246 au Filetype tex set spell
251 """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
253 """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
255 au Filetype python map <F5> :!python % <CR>
258 " vimrc file for following the coding standards specified in PEP 7 & 8.
260 " Number of spaces that a pre-existing tab is equal to.
261 " For the amount of space used for a new tab use shiftwidth.
262 au Filetype python set shiftwidth=4
263 au Filetype python set expandtab
265 " Wrap text after a certain number of characters
266 au BufRead,BufNewFile *.py,*.pyw set textwidth=79
271 """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
273 """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
275 "Opens the current file in ipe
276 au Filetype xml map <M-o> :call OpenIn("ipe") <CR>
279 """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
281 """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
284 au BufRead,BufNewFile *.plt set filetype=gnuplot
285 au BufRead,BufNewFile *.plot set filetype=gnuplot
286 au BufRead,BufNewFile *.gnuplot set filetype=gnuplot
288 "Opens the current file in ipe
289 au Filetype gnuplot map <M-o> :call OpenIn("gnuplot -persist") <CR>
293 """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
295 """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
297 let g:EnhCommentifyUseAltKeys = 'Yes'
301 """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
303 """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
305 "function InsertTabWrapper()
306 " let col = col('.') - 1
307 " if !col || getline('.')[col - 1] !~ '\k'
314 " Remap the tab key to select action with InsertTabWrapper
315 "inoremap <C-space> <c-r>=InsertTabWrapper()<cr>
317 let g:SuperTabMappingForward = "<C-space>"
318 let g:SuperTabDefaultCompletionType = 'context'
319 "let g:SuperTabDefaultCompletionType = '<c-x><c-u>'
323 if filereadable($HOME . "/.vimrc-local")
324 source ~/.vimrc-local