From 248fda6700cddf489b1e528f02b40574d796812f Mon Sep 17 00:00:00 2001 From: Felix Nehrke Date: Thu, 24 Feb 2022 14:57:46 +0100 Subject: [PATCH] Add .vimrc --- .vimrc | 147 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 147 insertions(+) create mode 100644 .vimrc diff --git a/.vimrc b/.vimrc new file mode 100644 index 0000000..81dc1ad --- /dev/null +++ b/.vimrc @@ -0,0 +1,147 @@ +" 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