" Start: Manage plugins set nocompatible filetype off set rtp+=~/.vim/bundle/Vundle.vim call vundle#begin() Plugin 'git@github.com:VundleVim/Vundle.vim.git' Plugin 'git@github.com:MarcWeber/vim-addon-mw-utils.git' Plugin 'git@github.com:Xuyuanp/nerdtree-git-plugin.git' Plugin 'git@github.com:airblade/vim-gitgutter.git' Plugin 'git@github.com:alvan/vim-closetag.git' Plugin 'git@github.com:chrisbra/csv.vim.git' Plugin 'git@github.com:ctrlpvim/ctrlp.vim.git' Plugin 'git@github.com:garbas/vim-snipmate.git' Plugin 'git@github.com:godlygeek/tabular.git' Plugin 'git@github.com:jelera/vim-javascript-syntax.git' Plugin 'git@github.com:junegunn/goyo.vim.git' Plugin 'git@github.com:leafgarland/typescript-vim.git' Plugin 'git@github.com:majutsushi/tagbar.git' Plugin 'git@github.com:mattn/emmet-vim.git' Plugin 'git@github.com:mbbill/undotree.git' Plugin 'git@github.com:morhetz/gruvbox.git' Plugin 'git@github.com:pedrohdz/vim-yaml-folds.git' Plugin 'git@github.com:scrooloose/nerdtree.git' Plugin 'git@github.com:tomtom/tlib_vim.git' Plugin 'git@github.com:tpope/vim-fugitive.git' Plugin 'git@github.com:tpope/vim-surround.git' Plugin 'git@github.com:vim-airline/vim-airline.git' Plugin 'git@github.com:vim-syntastic/syntastic.git' Plugin 'git@github.com:vimwiki/vimwiki.git' call vundle#end() " End: Manage plugins filetype plugin on syntax on let mapleader = "," let g:gruvbox_contrast_dark = 'hard' let g:vimwiki_table_mappings = 0 let g:vimwiki_folding = 'expr' let g:vimwiki_list = [{'path': '~/Development/nemoinho/gitea.nehrke.info/nemoinho/vimwiki/', 'auto_export': 1}] let g:NERDTreeGitStatusShowIgnored = 1 let NERDTreeMinimalUI = 1 let NERDTreeDirArrows = 1 let g:snipMate = { 'snippet_version' : 1 } set bg=dark set listchars=tab:›\ ,trail:·,nbsp:_,extends:»,precedes:« set list set hlsearch set number set nowrap set relativenumber set tabstop=4 set softtabstop=4 set shiftwidth=4 set expandtab set backspace=indent,eol,start highlight LineNr ctermfg=7 highlight CusrsorLineNr ctermbg=green highlight CusrsorLine ctermbg=green colorscheme gruvbox " sorted alphabetically to avoid conflicts, even if it's harder to read! imap :botright terminal ++close inoremap :call align()a nmap , :NERDTreeFocus nmap c :NERDTreeClose nmap d :VimwikiDiaryIndex nmap f w nmap g :Goyo nmap ga. :Git add % nmap gaa :Git add . nmap gb :Git blame nmap gc :Git commit nmap gd :Git diff nmap gg :Goyo nmap gl :Git lg nmap gp :Git push -u origin nmap gs :Git status nmap l :set nu! relativenumber! wrap! nmap n :NERDTreeToggle nmap q :qa! nmap sd :set spelllang=de_de nmap se :set spelllang=en_us nmap ss :set spell! nmap t, :Tabularize /,/l1 nmap tc :Tabularize /;/l1 nmap tp :Tabularize /\|/l1 nmap tt :Tabularize /\|/l1 nmap u :UndotreeToggle nmap w :set wrap! nmap :botright terminal ++close nmap gv :vertical wincmd f augroup jsgroup autocmd! autocmd FileType javascript set tabstop=2 softtabstop=2 shiftwidth=2 expandtab foldlevel=5 augroup end augroup yamlgroup autocmd! autocmd FileType yaml set tabstop=2 softtabstop=2 shiftwidth=2 expandtab foldlevel=4 augroup end augroup nerdtreegroup autocmd! autocmd BufEnter * if (winnr("$") == 1 && exists("b:NERDTree") && b:NERDTree.isTabTree()) | q | endif augroup end augroup diffgroup autocmd! autocmd FilterWritePre * if &diff | setlocal wrap< | endif augroup end augroup vimwikigroup autocmd! autocmd BufRead,BufNewFile diary.wiki VimwikiDiaryGenerateLinks "autocmd BufWritePost 20*-*-*.wiki execute 'silent ! vim -c VimwikiDiaryIndex -c VimwikiDiaryGenerateLinks -c x' autocmd FileType vimwiki set tabstop=2 softtabstop=2 shiftwidth=2 expandtab foldlevel=10 autocmd FileType vimwiki nmap we VimwikiTabnewLink autocmd FileType vimwiki nmap to :VimwikiTOC autocmd FileType vimwiki noremap ZZ :Goyo!:q " Fix broken backspace functionality on mac autocmd FileType vimwiki nmap VimwikiGoBackLink "autocmd BufRead,BufNewFile *.wiki :Goyo 80 "autocmd FileType vimwiki nmap tp :Tabularize /\|/l0 "autocmd FileType vimwiki nmap tt :Tabularize /\|/l0 inoremap " Autocommit stuff "autocmd BufWritePost $HOME/vimwiki/* execute 'silent ! FILE=$(basename %); cd $(dirname %); if [ -d .git ] || git rev-parse --git-dir > /dev/null 2>&1 ; then git add $FILE > /dev/null 2>&1; git commit -m $FILE > /dev/null 2>&1; git push > /dev/null 2>&1; fi' augroup end " Utility function to format tables in real time " (only for pipe-separated tables) function! s:align() let p = '^\s*|\s.*\s|\s*' if exists(':Tabularize') && getline('.') =~# '^\s*|' && (getline(line('.')-1) =~# p || getline(line('.')+1) =~# p) let column = strlen(substitute(getline('.')[0:col('.')],'[^|]','','g')) let position = strlen(matchstr(getline('.')[0:col('.')],'.*|\s*\zs.*')) Tabularize/|/l1 normal! 0 call search(repeat('[^|]*|',column).'\s\{-\}'.repeat('.',position),'ce',line('.')) endif endfunction