dotfiles/.vimrc
2021-05-28 09:24:32 +02:00

168 lines
5 KiB
VimL

" leader key
:let mapleader = ","
" vim statusline - kein plugin
" https://shapeshed.com/vim-statuslines/
function! GitBranch()
return system("git rev-parse --abbrev-ref HEAD 2>/dev/null | tr -d '\n'")
endfunction
function! StatuslineGit()
let l:branchname = GitBranch()
return strlen(l:branchname) > 0?' '.l:branchname.' ':''
endfunction
set statusline=
set statusline+=%#PmenuSel#
set statusline+=%{StatuslineGit()}
set statusline+=%#LineNr#
set statusline+=\ %f
set statusline+=%m\
set statusline+=%=
set statusline+=%#CursorColumn#
set statusline+=\ %y
set statusline+=\ %{&fileencoding?&fileencoding:&encoding}
set statusline+=\[%{&fileformat}\]
set statusline+=\ %p%%
set statusline+=\ %l:%c
set statusline+=\
" Vundle
set nocompatible
filetype off
" Set the runtime path to include Vundle and initialize
set rtp+=~/.vim/bundle/Vundle.vim
" Download plug-ins to the ~/.vim/plugged/ directory
call vundle#begin('~/.vim/plugged')
" Let Vundle manage Vundle
Plugin 'VundleVim/Vundle.vim' "muss immer der erste eintrag sein
Plugin 'sheerun/vim-polyglot'
Plugin 'Xuyuanp/nerdtree-git-plugin'
Plugin 'jeetsukumaran/vim-buffergator'
Plugin 'mhinz/vim-signify'
Plugin 'ctrlpvim/ctrlp.vim'
Plugin 'lifepillar/vim-solarized8'
Plugin 'Yggdroot/indentLine'
Plugin 'tpope/vim-fugitive'
Plugin 'jiangmiao/auto-pairs'
Plugin 'preservim/nerdtree'
Plugin 'unkiwii/vim-nerdtree-sync'
" Install:
" vim +PluginInstall +qall
" oder
" :PluginInstall
call vundle#end()
"
" auto-pairs
let g:AutoPairsShortcutToggle = '<C-P>'
" Toogle Auto-Pairs mit Strg+P
" zur Autovervollständigung von Klammern
"
" NERDtree + nerdtree-sync
"https://github.com/preservim/nerdtree
let NERDTreeShowHidden = 1 " Show hidden files
let NERDTreeShowLineNumbers = 0 " Hide line numbers
let NERDTreeMinimalMenu = 1 " Use the minimal menu (m)
let NERDTreeWinSize = 31 " Set panel width to 31 columns
nmap <F2> :NERDTreeToggle<CR> " ruft NERDtree mit F2 auf
" Start NERDTree. If a file is specified, move the cursor to its window.
autocmd StdinReadPre * let s:std_in=1
autocmd VimEnter * NERDTree | if argc() > 0 || exists("s:std_in") | wincmd p | endif
let g:nerdtree_sync_cursorline = 1 " highlight the file in tree
" open the existing NERDTree on each new tab.
autocmd BufWinEnter * silent NERDTreeMirror
"
" exit Vim if NERDTree is the only window left.
autocmd BufEnter * if tabpagenr('$') == 1 && winnr('$') == 1 && exists('b:NERDTree') && b:NERDTree.isTabTree() |
\ quit | endif
"
" Tastenkürzel
" nmap <C-t> :tabnew<CR>:NERDTreeFind<CR>
" erstellt neuen tab und öffnet den open-dialog
"
" buffers
" https://joshldavis.com/2014/04/05/vim-tab-madness-buffers-vs-tabs/
"
" This allows buffers to be hidden if you've modified a buffer.
" " This is almost a must if you wish to use buffers in this way.
set hidden
"
" To open a new empty buffer
" This replaces :tabnew which I used to bind to this mapping
nmap <C-t> :enew<cr>
"
"" Move to the next buffer
nmap <C-l> :bnext<CR>
" Move to the previous buffer
nmap <C-h> :bprevious<CR>
"
" Close the current buffer and move to the previous one
" This replicates the idea of closing a tab
nmap <C-q> :bp <BAR> bd #<CR>
"
" nerdtree-git-plugin
let g:NERDTreeGitStatusIndicatorMapCustom = {
\ 'Modified' :'*',
\ 'Staged' :'+',
\ 'Untracked' :'',
\ 'Renamed' :'*',
\ 'Unmerged' :'',
\ 'Deleted' :'-',
\ 'Dirty' :'',
\ 'Ignored' :'',
\ 'Clean' :'',
\ 'Unknown' :'?',
\ }
"
"
" indentLine
" fügt vertikale Striche bei Einrückungen ein
filetype plugin indent on
"
" allgemeine Optionen
set showcmd
set showbreak=+++
set textwidth=100
set showmatch
set virtualedit=onemore
set encoding=UTF-8
set visualbell
set hlsearch
set smartcase
set gdefault
set ignorecase
set incsearch
set autoindent
set smartindent
set smarttab
set softtabstop=4
set ruler
set undolevels=1000
set backspace=indent,eol,start
set nu " Enable line numbers
syntax on " Enable syntax highlighting
set tabstop=4 " How many columns of whitespace a \t is worth
set shiftwidth=4 " How many columns of whitespace a level of indentation is worth
set expandtab " Use spaces when tabbing
set incsearch " Enable incremental search
set hlsearch " Enable highlight search
set termwinsize=12x0 " Set terminal size
set splitbelow " Always split below
set mouse=a " Enable mouse drag on window splits
"
" aussehen
set background=light " dark or light
colorscheme solarized8 " Your favorite color scheme's name
"
" ripgrep und ctrlp
" sudo apt install ripgrep(rg)
if executable('rg')
let g:ctrlp_user_command = 'rg %s --files --hidden --color=never --glob ""'
endif
let g:ctrlp_map = '<c-f>' "aufruf mit strg+f
" ignore files
" https://github.com/ctrlpvim/ctrlp.vim
set wildignore+=*/tmp/*,*.so,*.swp,*.zip " MacOSX/Linux
set wildignore+=*\\tmp\\*,*.swp,*.zip,*.exe " Windows