Update .vimrc

This commit is contained in:
2022-02-25 01:00:48 +01:00
parent f380d032d9
commit 0ea1b42651

153
.vimrc
View File

@@ -1,36 +1,80 @@
" Start: Manage plugins " Start: Manage plugins
set nocompatible set nocompatible
filetype off filetype off
set runtimepath+=~/.vim/bundle/Vundle.vim
set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin() call vundle#begin()
" Plugin-Manager
Plugin 'git@github.com:VundleVim/Vundle.vim'
Plugin 'git@github.com:VundleVim/Vundle.vim.git' " A wiki within vim
Plugin 'git@github.com:vimwiki/vimwiki'
Plugin 'git@github.com:MarcWeber/vim-addon-mw-utils.git' " A navigable visualization of vim's file-history
Plugin 'git@github.com:Xuyuanp/nerdtree-git-plugin.git' Plugin 'git@github.com:mbbill/undotree'
Plugin 'git@github.com:airblade/vim-gitgutter.git'
" A handy file-browser for vim
Plugin 'git@github.com:scrooloose/nerdtree'
" Utilities which are required by vim-snipmate
Plugin 'git@github.com:MarcWeber/vim-addon-mw-utils'
" Utilities which are required by vim-snipmate
Plugin 'git@github.com:tomtom/tlib_vim'
" Manage snippets as short cuts for vim
Plugin 'git@github.com:garbas/vim-snipmate'
" Add support for typecript-syntax
Plugin 'git@github.com:leafgarland/typescript-vim'
" Improve foldings on yaml-files (These are otherwise really unconvenient in vim)
Plugin 'git@github.com:pedrohdz/vim-yaml-folds'
" Add git-support, especially the command :Git
Plugin 'git@github.com:tpope/vim-fugitive'
" Autoformat tables in vim
Plugin 'git@github.com:godlygeek/tabular'
" Add git-status-marker in nerdtree
Plugin 'git@github.com:Xuyuanp/nerdtree-git-plugin'
" Enable syntax-checks
Plugin 'git@github.com:vim-syntastic/syntastic'
" Add markers for changed lines
Plugin 'git@github.com:airblade/vim-gitgutter'
" A magigical search-term for pretty much everything within vim
Plugin 'git@github.com:ctrlpvim/ctrlp.vim'
" Add a bunch of support for csv-files
Plugin 'git@github.com:chrisbra/csv.vim'
" A navigable view of the tags/marks within a file
Plugin 'git@github.com:preservim/tagbar'
" Add support for js-syntax
Plugin 'git@github.com:jelera/vim-javascript-syntax'
" A 'surround' command similiar to the 'inner' commands (cs'" to change quotes)
Plugin 'git@github.com:tpope/vim-surround'
" A cool theme with good readability
Plugin 'git@github.com:lifepillar/vim-gruvbox8'
" A tool to remove every noisy output to concentrate on writing!
Plugin 'git@github.com:junegunn/goyo.vim'
" Add support for hcl (terraform, packer, etc.)
Plugin 'git@github.com:jvirtanen/vim-hcl'
" Add closing-tags in HTML/XML
Plugin 'git@github.com:alvan/vim-closetag.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' " A tool to build HTML with a simplified selector-language
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:mattn/emmet-vim.git'
Plugin 'git@github.com:mbbill/undotree.git'
Plugin 'git@github.com:morhetz/gruvbox.git' " Add a status/tabline at the bottom
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-airline/vim-airline.git'
Plugin 'git@github.com:vim-syntastic/syntastic.git'
Plugin 'git@github.com:vimwiki/vimwiki.git'
Plugin 'git@github.com:tpope/vim-cucumber.git'
call vundle#end() call vundle#end()
" End: Manage plugins " End: Manage plugins
@@ -39,6 +83,7 @@ filetype plugin on
syntax on syntax on
let mapleader = "," let mapleader = ","
let g:gruvbox_contrast_dark = 'hard' let g:gruvbox_contrast_dark = 'hard'
let g:vimwiki_table_mappings = 0 let g:vimwiki_table_mappings = 0
let g:vimwiki_folding = 'expr' let g:vimwiki_folding = 'expr'
@@ -47,16 +92,22 @@ let g:NERDTreeGitStatusShowIgnored = 1
let NERDTreeMinimalUI = 1 let NERDTreeMinimalUI = 1
let NERDTreeDirArrows = 1 let NERDTreeDirArrows = 1
let g:snipMate = { 'snippet_version' : 1 } let g:snipMate = { 'snippet_version' : 1 }
let g:tagbar_ctags_bin = '~/.local/opt/ctags/bin/ctags'
set bg=dark set bg=dark
" Settings
set listchars=tab:\ ,trail,nbsp:_,extends,precedes set listchars=tab:\ ,trail,nbsp:_,extends,precedes
set list set list
set hlsearch set hlsearch
set number set number
set nowrap
set relativenumber set relativenumber
set nowrap
set linebreak
" Enable vim configs in the first or last lines of a file
set modeline
set modelineexpr
set tabstop=4 set tabstop=4
set softtabstop=4
set shiftwidth=4 set shiftwidth=4
set expandtab set expandtab
set backspace=indent,eol,start set backspace=indent,eol,start
@@ -65,38 +116,50 @@ highlight LineNr ctermfg=7
highlight CusrsorLineNr ctermbg=green highlight CusrsorLineNr ctermbg=green
highlight CusrsorLine ctermbg=green highlight CusrsorLine ctermbg=green
colorscheme gruvbox colorscheme gruvbox8
" sorted alphabetically to avoid conflicts, even if it's harder to read!
" General utilities
nmap <Leader>gg :Goyo<CR>
nmap <Leader>l :set nu! relativenumber! wrap!<CR>
nmap <Leader>tw :set textwidth=72<CR>
nmap <Leader>q :qa!<CR>
nmap gv :vertical wincmd f<CR>
nnoremap <leader>cd :cd %:p:h<CR>
" Open shell with Ctrl+d to enable a toggle between a shell and vim
nnoremap <silent> <C-d> :botright terminal ++close<CR> nnoremap <silent> <C-d> :botright terminal ++close<CR>
inoremap <silent> <C-d> <Esc>:botright terminal ++close<CR> inoremap <silent> <C-d> <Esc>:botright terminal ++close<CR>
" Handle nerdtree and other utility-windows
nmap <Leader>, :NERDTreeFocus<CR> nmap <Leader>, :NERDTreeFocus<CR>
nmap <Leader>c :NERDTreeClose<CR> nmap <Leader>c :NERDTreeClose<CR>
nmap <Leader>d :VimwikiDiaryIndex<CR> nmap <Leader>n :NERDTreeToggle<CR>
nmap <Leader>f <C-w>w nmap <Leader>t :TagbarToggle<CR>
nmap <Leader>g :Goyo<CR> nmap <Leader>u :UndotreeToggle<CR>
" Git
nmap <Leader>ga. :Git add %<CR> nmap <Leader>ga. :Git add %<CR>
nmap <Leader>gaa :Git add .<CR> nmap <Leader>gaa :Git add .<CR>
nmap <Leader>gb :Git blame<CR> nmap <Leader>gb :Git blame<CR>
nmap <Leader>gc :Git commit<CR> nmap <Leader>gc :Git commit<CR>
nmap <Leader>gd :Git diff<CR> nmap <Leader>gd :Git diff<CR>
nmap <Leader>gg :Goyo<CR>
nmap <Leader>gl :Git lg<CR> nmap <Leader>gl :Git lg<CR>
nmap <Leader>gp :Git push -u origin<CR> nmap <Leader>gp :Git push -u origin<CR>
nmap <Leader>gs :Git status<CR> nmap <Leader>gs :Git status<CR>
nmap <Leader>l :set nu! relativenumber! wrap!<CR>
nmap <Leader>n :NERDTreeToggle<CR> " Install these files to ~/.vim/spell/
nmap <Leader>q :qa!<CR> " http://ftp.vim.org/vim/runtime/spell/en.utf-8.spl
" http://ftp.vim.org/vim/runtime/spell/de.utf-8.spl
nmap <Leader>ss :set spell!<CR>
nmap <Leader>sd :set spelllang=de_de<CR> nmap <Leader>sd :set spelllang=de_de<CR>
nmap <Leader>se :set spelllang=en_us<CR> nmap <Leader>se :set spelllang=en_us<CR>
nmap <Leader>ss :set spell!<CR>
" Tabularize
nmap <Leader>t, :Tabularize /,/l1<CR> nmap <Leader>t, :Tabularize /,/l1<CR>
nmap <Leader>tc :Tabularize /;/l1<CR> nmap <Leader>tc :Tabularize /;/l1<CR>
nmap <Leader>tp :Tabularize /\|/l1<CR> nmap <Leader>tp :Tabularize /\|/l1<CR>
nmap <Leader>tt :Tabularize /\|/l1<CR> nmap <Leader>tt :Tabularize /\|/l1<CR>
nmap <Leader>u :UndotreeToggle<CR>
nmap <Leader>w :set wrap!<CR>
nmap gv :vertical wincmd f<CR>
augroup jsgroup augroup jsgroup
autocmd! autocmd!
@@ -108,25 +171,31 @@ augroup yamlgroup
augroup end augroup end
augroup nerdtreegroup augroup nerdtreegroup
autocmd! autocmd!
" Close when only Nerdtree would remain
autocmd BufEnter * if (winnr("$") == 1 && exists("b:NERDTree") && b:NERDTree.isTabTree()) | q | endif autocmd BufEnter * if (winnr("$") == 1 && exists("b:NERDTree") && b:NERDTree.isTabTree()) | q | endif
augroup end augroup end
augroup diffgroup augroup diffgroup
autocmd! autocmd!
" Copy global wrap in diff (This way I can use the same behavior in diff as in normal views)
autocmd FilterWritePre * if &diff | setlocal wrap< | endif autocmd FilterWritePre * if &diff | setlocal wrap< | endif
if &diff
nmap <Leader>1 :diffget LOCAL<CR>
nmap <Leader>2 :diffget BASE<CR>
nmap <Leader>3 :diffget REMOTE<CR>
endif
augroup end augroup end
augroup vimwikigroup augroup vimwikigroup
autocmd! autocmd!
autocmd BufRead,BufNewFile diary.wiki VimwikiDiaryGenerateLinks 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 set tabstop=2 softtabstop=2 shiftwidth=2 expandtab foldlevel=10
autocmd FileType vimwiki nmap <Leader>we <Plug>VimwikiTabnewLink autocmd FileType vimwiki nmap <Leader>d :VimwikiDiaryIndex<CR>
autocmd FileType vimwiki nmap <Leader>to :VimwikiTOC<CR> autocmd FileType vimwiki nmap <Leader>to :VimwikiTOC<CR>
autocmd FileType vimwiki noremap ZZ :Goyo!<CR>:q<CR> autocmd FileType vimwiki noremap ZZ :Goyo!<CR>:q<CR>
" Fix broken backspace functionality on mac " Fix broken backspace functionality on mac
if has("unix") if has("unix")
let s:uname = system("uname -s") let s:uname = system("uname -s")
if s:uname == "Darwin" if s:uname == "Darwin"
autocmd FileType vimwiki nmap <C-H> <Plug>VimwikiGoBackLink autocmd FileType vimwiki nnoremap <C-H> <Plug>VimwikiGoBackLink
endif endif
endif endif
augroup end augroup end