+++ /dev/null
-" Purpose: My personal .vimrc
-" Author: Stefan Huber
-
-"profile start /tmp/profile.log
-"profile func *
-"profile file *
-
-set encoding=utf8
-set number
-set backspace=indent,eol,start
-
-set mouse=a
-
-set tagstack
-set grepprg=grep\ -nH\ $*
-set foldcolumn=1
-
-set incsearch
-set hlsearch
-
-set cursorline
-set laststatus=2
-set scrolloff=4
-
-set listchars=tab:»,trail:·,eol:$
-set virtualedit=block
-
-set autoindent
-set tabstop=4
-set shiftwidth=4
-set expandtab
-
-if version >= 703
- set spelllang=de_at,en
- set tabpagemax=20
- set colorcolumn=+1
-endif
-
-set wildmode=longest,list:longest
-
-set tags=./tags;/
-
-syntax on
-filetype plugin indent on
-
-runtime! autoload/plug.vim
-" Check if there is vim-plug installed
-if exists('g:loaded_plug')
- call plug#begin('~/.config/nvim/plugged')
- Plug 'Glench/Vim-Jinja2-Syntax'
- Plug 'LaTeX-Box-Team/LaTeX-Box'
- Plug 'benekastah/neomake'
- Plug 'vim-airline/vim-airline'
- Plug 'vim-airline/vim-airline-themes'
- Plug 'chrisbra/csv.vim'
- Plug 'craigemery/vim-autotag'
- Plug 'derekwyatt/vim-fswitch'
- Plug 'godlygeek/tabular'
- "Plug 'kien/ctrlp.vim'
- Plug 'junegunn/fzf'
- Plug 'majutsushi/tagbar'
- Plug 'mhinz/vim-signify'
- Plug 'msanders/snipmate.vim'
- Plug 'scrooloose/nerdcommenter'
- Plug 'scrooloose/nerdtree'
- " Plug 'scrooloose/syntastic'
- Plug 'sjl/splice.vim'
- Plug 'Shougo/deoplete.nvim'
- Plug 'suan/vim-instant-markdown'
- Plug 'StanAngeloff/php.vim'
- Plug 't4ku/marktag'
- Plug 'thinca/vim-fontzoom'
- Plug 'tpope/vim-ragtag'
- Plug 'vim-scripts/CSApprox'
- Plug 'vim-scripts/DetectIndent'
- Plug 'vim-scripts/git_patch_tags.vim'
- Plug 'vim-scripts/loremipsum'
- call plug#end()
-
- autocmd! BufWritePost,BufEnter * Neomake
-
-" If there is no vim-plug, try pathogen
-else
- runtime autoload/pathogen.vim
- if exists("g:loaded_pathogen")
- " Pathogen runtime path manipulation
- call pathogen#runtime_append_all_bundles()
- call pathogen#helptags()
- endif
-endif
-
-
-if has('nvim')
- set rtp^=/usr/share/vim/vimfiles
-else
- set nocompatible
-endif
-
-" Color settings
-if !has('nvim')
- set t_Co=256
-else
- let $NVIM_TUI_ENABLE_TRUE_COLOR=1
-endif
-let g:CSApprox_attr_map = { 'bold' : 'bold', 'italic' : 'underline', 'sp' : 'bg' }
-
-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,vim syn match BadWhitespace /\s\+$/ containedin=ALL
-au Filetype python,tex,c,cpp,cs,objc,java,vim let g:airline#extensions#whitespace#enabled = 0
-
-
-" Detect indentation, but otherwise set expandtab
-if exists(":DetectIndent")
- au BufReadPost * :DetectIndent
-endif
-
-
-"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
-" Airline
-"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
-
-let g:airline_powerline_fonts = 0
-let g:airline_theme = 'wombat'
-
-let g:airline#extensions#tabline#enabled = 1
-let g:airline#extensions#tagbar#enabled = 0
-let g:airline#extensions#whitespace#enabled = 0
-let g:airline#extensions#branch#enabled = 1
-let g:airline#extensions#branch#use_vcscommand = 1
-
-"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
-" Some macros
-"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
-
-"Open current file with a specific program
-function OpenIn(prog)
- execute ":!" . a:prog . " % &"
-endfunction
-
-
-"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
-" key bindings
-"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
-
-nmap <s-PageDown> :bn<CR>
-nmap <s-PageUp> :bp<CR>
-
-map <a-c> <plug>NERDCommenterToggle
-nmap <F10> :TagbarToggle<CR>
-
-"nmap <c-q> :q<CR>
-"nmap <c-s> :w<CR>
-"vmap <c-s> <Esc><c-s>gv
-"imap <c-s> <c-o><c-s>
-
-
-
-"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
-" NERDTree
-""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
-nmap <F9> :NERDTreeToggle<CR>
-let g:NERDTreeDirArrows = 1
-let g:NERDTreeDirArrowExpandable = '▸'
-let g:NERDTreeDirArrowCollapsible = '▾'
-
-
-"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
-" 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 set cindent cst csto=0
-
-au Filetype c,cpp,cs,objc,java map <buffer> <F4> :cnext<CR>
-au Filetype c,cpp,cs,objc,java map <buffer> <S-F4> :cprevious<CR>
-
-au Filetype c,cpp,cs,objc set makeprg=make
-au Filetype c,cpp,cs,objc map <buffer> <F7> :make<CR>
-au Filetype java map <buffer> <F7> :!ant -f ../build.xml<CR>
-
-" If FSwitch exists
-runtime! plugin/fswitch.vim
-if exists(":FSHere")
- au Filetype c,cpp,objc map <buffer> <F11> :vsplit<CR>:FSRight<CR>
- au Filetype c,cpp,objc map <buffer> <S-F11> :FSHere<CR>
-
- " Substitute lib <-> include, otherwise take the same directory
- au BufEnter *.c* let b:fswitchlocs='reg:/lib/include/,rel:.'
- au BufEnter *.h* let b:fswitchlocs='reg:/include/lib/,rel:.'
- "au BufEnter *.c* let b:fswitchlocs='rel:.,rel:../inc*/**,rel:../../inc*/**'
-
- au BufEnter *.cpp,*.cc,*.cxx let b:fswitchdst='h,hxx,hpp,hh'
- au BufEnter *.h,*.hh,*.hxx let b:fswitchdst='cc,c,cxx,cpp'
-else
- au Filetype c,cpp,cs,objc,java map <buffer> <F11> :AS<CR>
- au Filetype c,cpp,cs,objc,java map <buffer> <S-F11> :A<CR>
-endif
-
-
-"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 <id>
- "
- " 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:id . '\>@' . a:ns . '::' . a:id . '@ge'
- " If #include and // and :: is not prepend, but */ is, and no further /* or // are found
- execute ':%s@\(\(#include\|\/\/\).*\)\@<!\*\/\(\/[^\/\*]\|[^\/]\)*\zs\(::\)\@<!\<' . a:id . '\>@' . a:ns . '::' . a:id . '@ge'
-
-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"/'
-endfunction
-
-function InsertIncludeGuardsWithoutEndif()
- let gatename = substitute(expand("%:t"), "\\.", "_", "g") . '_' . strpart(system('pwgen -c 16 1'), 0, 16)
- execute "normal! i#ifndef " . gatename
- execute "normal! o#define " . gatename
-endfunction
-
-function AddIncludeGuards()
- execute "normal! Go#endif"
- execute "normal! gg"
- call InsertIncludeGuardsWithoutEndif()
-endfunction
-
-autocmd BufNewFile *.{h,hpp,hxx} call AddIncludeGuards()
-
-
-"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
-" Text and mail
-"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
-
-au Filetype text set textwidth=80
-au Filetype markddown 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
-
-
-"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
-" maxima
-"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
-
-au BufRead,BufNewFile *.wxm set filetype=maxima
-
-
-"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
-" LaTeX
-"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
-
-let g:LatexBox_split_side = "rightbelow"
-"let g:LatexBox_split_resize = 1
-let g:LatexBox_ref_pattern = '\c\\\a*ref\*\?\_\s*{'
-
-let g:tex_flavor = "latex"
-let g:LatexBox_output_type = "pdf"
-let g:LatexBox_viewer = "okular"
-let g:LatexBox_latexmk_async = 1
-let g:LatexBox_latexmk_preview_continuously = 1
-"let g:LatexBox_show_warnings = 0
-let g:LatexBox_quickfix = 4
-
-if version >= 700
- au Filetype tex set spell
-endif
-
-au BufRead,BufNewFile *.cls set filetype=tex
-au Filetype tex set textwidth=80
-au Filetype tex set shiftwidth=2
-au Filetype tex set smartindent
-" Override Tagbar Toggle with LatexBox TOC
-au Filetype tex nmap <buffer> <F10> :LatexTOCToggle<CR>
-au Filetype tex nmap <buffer> <F11> :LatexLabels<CR>
-
-
-"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
-
-
-"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
-" python
-"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
-
-au Filetype python map <buffer> <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 shiftwidth=4
-au Filetype python set expandtab
-
-" Wrap text after a certain number of characters
-au Filetype python set textwidth=79
-
-let g:syntastic_python_checkers = ["pyflakes"]
-
-"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
-" XML, Ipe
-"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
-
-"Opens the current file in ipe
-au BufRead,BufNewFile *.ipe set filetype=ipe
-au Filetype xml,ipe map <buffer> <M-o> :call OpenIn("ipe") <CR>
-
-au Filetype xml let g:tagbar_sort = 0
-let g:tagbar_type_xml = {
- \ 'ctagstype' : 'xml',
- \ 'kinds' : [
- \ 't:Tag'
- \ ]
-\ }
-
-"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
-" gnuplot
-"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
-
-"Opens the current file in ipe
-au Filetype gnuplot map <buffer> <M-o> :call OpenIn("gnuplot -persist") <CR>
-
-
-"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
-" remind
-"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
-
-au BufRead,BufNewFile */.remind/* set filetype=remind
-
-
-"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
-" vim-orgmode
-"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
-
-au BufRead,BufNewFile *.org set filetype=org
-let g:org_todo_keywords=['TODO', 'FEEDBACK', 'VERIFY', '|', 'DONE', 'DELEGATED']
-let g:org_todo_keyword_faces = [['FEEDBACK', 'magenta'], ['TODO', 'yellow']]
-
-
-"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
-" markdown
-"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
-
-let g:instant_markdown_autostart = 0
-let g:instant_markdown_slow = 1
-au Filetype markdown map <buffer> <F5> :InstantMarkdownPreview<CR>
-au Filetype markdown let g:tagbar_sort = 0
-
-let g:tagbar_type_markdown = {
- \ 'ctagstype' : 'markdown',
- \ 'kinds' : [
- \ 'h:Heading_L1',
- \ 'i:Heading_L2',
- \ 'k:Heading_L3'
- \ ]
-\ }
-
-if executable('marktag')
- let g:tagbar_type_markdown = {
- \ 'ctagstype' : 'markdown',
- \ 'ctagsbin' : 'marktag',
- \ 'kinds' : [
- \ 'h:header'
- \ ],
- \ 'sro' : '.',
- \ 'kind2scope' : {
- \ 'h' : 'header'
- \ },
- \ 'scope2kind' : {
- \ 'header' : 'h'
- \ }
- \ }
-end
-
-
-"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
-" deoplete
-"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
-
-if has('nvim')
- let g:deoplete#enable_at_startup = 1
-end
-
-"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
-" youcompleteme
-"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
-
-let g:ycm_global_ycm_extra_conf = '~/.ycm_extra_conf.py'
-let g:ycm_confirm_extra_conf = 0
-
-let g:ycm_min_num_of_chars_for_completion = 4
-let g:ycm_collect_identifiers_from_tags_files = 1
-let g:ycm_autoclose_preview_window_after_completion = 1
-
-let g:ycm_key_list_select_completion = ['<Down>']
-nnoremap <buffer> <leader>jd :YcmCompleter GoToDefinitionElseDeclaration<CR>
-
-let g:ycm_filetype_whitelist = { 'c' : 1, 'cpp' : 1, 'cs' : 1, 'objc' : 1, 'java' : 1, 'python' : 1 }
-
-"let g:ycm_server_use_vim_stdout = 1
-"let g:ycm_server_log_level = 'debug'
-
-
-"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
-" syntastic
-"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
-
-let g:syntastic_mode_map = { 'mode' : 'active', 'active_filetypes' : [], 'passive_filetypes' : ['html'] }
-let g:ycm_show_diagnostics_ui = 0
-let g:syntastic_c_checkers = ["cppcheck"]
-let g:syntastic_cpp_checkers = g:syntastic_c_checkers
-
-
-"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
-" signify
-"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
-
-let g:signify_vcs_list = ['git']
-
-
-
-
-if filereadable($HOME . "/.vimrc-local")
- source ~/.vimrc-local
-endif
-
-" Being able to load project specific vimrc files
-set exrc
-set secure
-
-