X-Git-Url: https://git.sthu.org/?a=blobdiff_plain;f=dotfiles%2Fvim%2F.vimrc;h=a68602e9d83d09117f284bd94698d742a1ef8110;hb=02063fc14e491e782b855108b801eb92167ab958;hp=7c4d049abaa82c181a0149509c4e750eb539cf07;hpb=f111c9362e6680ed06ea96c1874baca9621c9ded;p=shutils.git diff --git a/dotfiles/vim/.vimrc b/dotfiles/vim/.vimrc index 7c4d049..a68602e 100644 --- a/dotfiles/vim/.vimrc +++ b/dotfiles/vim/.vimrc @@ -8,102 +8,98 @@ "option and setting. -" Pathogen runtime path manipulation -"call pathogen#infect() "Using the infect method breaks ft detection -call pathogen#runtime_append_all_bundles() - - -"Activate syntax highlighting -syntax on -"Activate filetype plugins: syntax highlighting, indentation, and more -filetype plugin indent on - +set nocompatible +set encoding=utf8 set modeline set number set backspace=indent,eol,start -"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 - set colorcolumn=+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 - -"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 cursorline +set laststatus=2 set listchars=tab:»­,trail:·,eol:$ - set autoindent set tabstop=4 set shiftwidth=4 -au Filetype * :DetectIndent -"au Filetype python,tex,c,cpp,cs,objc,java :DetectIndent -"let g:detectindent_preferred_expandtab = 1 -"let g:detectindent_preferred_indent = 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 -set cursorline +" 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,vim syn match BadWhitespace /\s\+$/ containedin=ALL -""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" -" 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 +if exists(":DetectIndent") + au BufReadPost * :DetectIndent +endif +let g:syntastic_mode_map = { 'mode' : 'active', 'active_filetypes' : [], 'passive_filetypes' : ['html'] } """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" -" IRSSI logs +" Some macros """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" -au BufRead,BufNewFile */.irssi/logs/*.log set filetype=irssilog +"Open current file with a specific program +function OpenIn(prog) + execute ":!" . a:prog . " % &" +endfunction """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" -" Easychair conference system review form +" key bindings +""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" + +map NERDCommenterToggle + +nmap :q +nmap :w +vmap gv +imap + + """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +" fortran +"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" -au BufRead,BufNewFile review_form_*.txt set filetype=easychair -au Syntax easychair runtime! syntax/easychair.vim +"let fortran_free_source=1 +au BufNewFile *.f90 set fortran_free_source=1 +au Filetype fortran set cindent cst csto=0 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" @@ -120,48 +116,56 @@ 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 - +"Prepend the namespace to an identifier, e.g. 'std::' before 'map' excluding +"those in C/C++ comments. +function PrependCppNamespaceToIdent(ns, id) + + " To match Not to match + " + "|id |// id + "| id |// /* */ id + "|/* */ /* */ id |/* */ // id + "|id /* */ |/* id + "|*/ id | * id + " |/* id */ + " |::id + " |/**/ ::id + " |#include + " + " In order to not match '* id' it is assumed that multi-line comment lines + " in the middle begin with a star. + + " If #include and // and /* and ^* and :: is not prepend: + execute ':%s@\(\(#include\|\/\/\|\/\*\|^\s*\*[^/]\).*\|::\)\@@' . a:ns . '::' . a:id . '@ge' + " If #include and // and :: is not prepend, but */ is, and no further /* or // are found + execute ':%s@\(\(#include\|\/\/\).*\)\@@' . a:ns . '::' . a:id . '@ge' -"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 +"Prepend STL namespace 'std::' to several identifiers +function PrependSTLNamespace() + " This list of identifier is not complete, but adding all of them is too + " much. We rather like to add identifieres that are 'typical' for C++. + " Others, like 'move' are likely to not be C++ specific. In this cases the + " user is asked to call PrependCppNamespaceToIdent by hand. + let id = [] + let id = id +['cin', 'cout', 'cerr', 'endl'] + let id = id +['swap', 'sort', 'max', 'min'] + let id = id +['vector', 'deque', 'list', 'map', 'multimap', 'set'] + let id = id +['queue', 'stack', 'priority_queue'] + let id = id +['ostream', 'istream', 'sstream'] + let id = id +['pair', 'string'] + + for i in id + call PrependCppNamespaceToIdent("std", i) + endfor +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"/' + 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 @@ -173,11 +177,12 @@ endfunction 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 + au Filetype mail,text set fo+=n spell endif "Scissor line @@ -185,22 +190,19 @@ 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 + au Filetype php set spell endif au Filetype php set textwidth=80 "au Filetype php set cindent - - """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " LaTeX """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" @@ -210,51 +212,39 @@ 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/&' + 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\>' + 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 map! ,b \begin{}i -au Filetype tex map! ,e :call TexClosePrev(0)a -au Filetype tex map! ,i \begin{itemize}\end{itemize}O\item -au Filetype tex map! ,f \begin{frame}\end{frame}O\frametitle{ -au Filetype tex map! ,p \begin{figure}\end{figure}O\centering\includegraphics{ - - - if version >= 700 - au Filetype tex set spell + 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. @@ -263,9 +253,7 @@ 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 - - +au Filetype python set textwidth=79 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" @@ -280,48 +268,21 @@ au Filetype xml map :call OpenIn("ipe") " 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 :call OpenIn("gnuplot -persist") - """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" -" Commenting +" youcompleteme """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" -let g:EnhCommentifyUseAltKeys = 'Yes' - - - -""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" -" Tab completion -""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" - -"function InsertTabWrapper() -" let col = col('.') - 1 -" if !col || getline('.')[col - 1] !~ '\k' -" return "\" -" else -" return "\" -" endif -"endfunction - -" Remap the tab key to select action with InsertTabWrapper -"inoremap =InsertTabWrapper() - -let g:SuperTabMappingForward = "" -let g:SuperTabDefaultCompletionType = 'context' -"let g:SuperTabDefaultCompletionType = '' +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 + source ~/.vimrc-local endif