X-Git-Url: https://git.sthu.org/?a=blobdiff_plain;ds=sidebyside;f=dotfiles%2Fvim%2F.vimrc;h=3858f3abe3be3df0f015db400e820a51d75a319a;hb=9fef42756f5fd61ea6b19d1c4cd628c8d9fa92ce;hp=7a05e1d5250798c9e3d6c6457632be1c28112158;hpb=0fb103495587561054a6a6eba55f7f078631499d;p=shutils.git diff --git a/dotfiles/vim/.vimrc b/dotfiles/vim/.vimrc index 7a05e1d..3858f3a 100644 --- a/dotfiles/vim/.vimrc +++ b/dotfiles/vim/.vimrc @@ -1,16 +1,13 @@ " 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. + +"profile start /tmp/profile.log +"profile func * +"profile file * set nocompatible set encoding=utf8 -set modeline set number set backspace=indent,eol,start @@ -25,10 +22,12 @@ set cursorline set laststatus=2 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 @@ -36,6 +35,10 @@ if version >= 703 set colorcolumn=+1 endif +set wildmode=longest,list:longest + +set tags=./tags;/ + " Pathogen runtime path manipulation "call pathogen#infect() "Using the infect method breaks ft detection filetype off @@ -61,8 +64,10 @@ colorscheme shuber-wombat 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 @@ -71,6 +76,19 @@ endif let g:syntastic_mode_map = { 'mode' : 'active', 'active_filetypes' : [], 'passive_filetypes' : ['html'] } +""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +" 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 = 0 +let g:airline#extensions#branch#use_vcscommand = 1 + """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " Some macros """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" @@ -86,6 +104,8 @@ endfunction """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" map NERDCommenterToggle +nmap :NERDTreeToggle +nmap :TagbarToggle nmap :q nmap :w @@ -130,27 +150,31 @@ function PrependCppNamespaceToIdent(ns, 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 // and /* and ^* and :: is not prepend: - execute ':%s_\(\(\/\/\|\/\*\|^\s*\*[^/]\).*\|::\)\@_' . a:ns . '::' . a:id . '_ge' - " If // and :: is not prepend, but */ is, and no further /* or // are found - execute ':%s_\(\/\/.*\)\@_' . a:ns . '::' . a:id . '_ge' + " 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' 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'] + let id = id +['ostream', 'istream', 'sstream'] let id = id +['pair', 'string'] - let id = ['map'] for i in id call PrependCppNamespaceToIdent("std", i) @@ -164,6 +188,19 @@ function EscapeHexToChar() 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() """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" @@ -199,6 +236,13 @@ au Filetype php set textwidth=80 "au Filetype php set cindent +""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +" maxima +""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" + +au BufRead,BufNewFile *.wxm set filetype=maxima + + """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " LaTeX """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" @@ -225,8 +269,12 @@ function FindWordRepeatings() endfunction let g:tex_flavor = "latex" -let g:LatexBox_viewer="okular" -let g:LatexBox_latexmk_options="-pvc" +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 = 2 au Filetype tex set smartindent @@ -268,17 +316,35 @@ au Filetype xml map :call OpenIn("ipe") au Filetype gnuplot map :call OpenIn("gnuplot -persist") +""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +" remind +""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" + +au BufRead,BufNewFile */.remind/* set filetype=remind + + """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " youcompleteme """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +"let g:ycm_path_to_python_interpreter = '/usr/bin/python' +let g:ycm_global_ycm_extra_conf = '/home/shuber/.ycm_extra_conf.py' let g:ycm_min_num_of_chars_for_completion = 999 let g:ycm_key_list_select_completion = [''] +let g:ycm_collect_identifiers_from_tags_files = 1 +let g:ycm_autoclose_preview_window_after_completion = 1 +nnoremap jd :YcmCompleter GoToDefinitionElseDeclaration +"let g:ycm_server_use_vim_stdout = 1 +"let g:ycm_server_log_level = 'debug' if filereadable($HOME . "/.vimrc-local") source ~/.vimrc-local endif +" Being able to load project specific vimrc files +set exrc +set secure +