" Vundle 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; muss immer der erste Eintrag sein Plugin 'VundleVim/Vundle.vim' " languagepack Plugin 'sheerun/vim-polyglot' " fuzzy finder Plugin 'ctrlpvim/ctrlp.vim' " git integration G: Plugin 'tpope/vim-fugitive' " auto einrueckung Plugin 'tpope/vim-sleuth' call vundle#end() " ### allgemeine Optionen " ### Suche " While typing a search command, show immediately where the so far typed pattern matches. set incsearch " global bei suche immer mit an set gdefault " When there is a previous search pattern, highlight all its matches. set hlsearch " Ignore case in search patterns. set ignorecase " Override the 'ignorecase' option if the search pattern contains upper case characters. set smartcase " ### Nummern " Show line numbers. set number " toggle linenumbers nmap :set nonu! " ### Kommandovervollständigung " https://www.reddit.com/r/vim/comments/oo9gms/any_way_to_get_vim_to_not_defaulting_to_the_first/h5wygix/?context=8&depth=9 set wildmode=longest,list,full set wildmenu set wildignore=*.o,*~ " ### Rest " Show (partial) command in status line. set showcmd set virtualedit=onemore set encoding=UTF-8 set visualbell set ruler set undolevels=1000 set backspace=indent,eol,start " ermögliche das bearbeitete buffer in der hintergrund können set hidden " verhindert zeilenumbrüche set nowrap set showbreak=+++ " https://vim.fandom.com/wiki/Automatic_word_wrapping set wrap linebreak " Enable syntax highlighting syntax on " Enable mouse drag on window splits set mouse=a " https://unix.stackexchange.com/questions/12535/how-to-copy-text-from-vim-to-an-external-program set clipboard=unnamedplus " zeige "matching" klammer usw. set showmatch " ### Plugins" " ### ripgrep und ctrlp " sudo apt install ripgrep(rg) if executable('rg') let g:ctrlp_user_command = 'rg %s --files --hidden --color=never --glob ""' else let g:ctrlp_user_command = 'find %s -type f' endif " let g:ctrlp_map = '' "aufruf mit strg+f nmap :CtrlP " ignore files " https://github.com/ctrlpvim/ctrlp.vim set wildignore+=*/tmp/*,*.so,*.swp,*.zip " MacOSX/Linux set wildignore+=*\\tmp\\*,*.swp,*.zip,*.exe " Windows let g:ctrlp_custom_ignore = '\v[\/]\.(git|hg|svn)$' " stelle standard keybinding um let g:ctrlp_map = '' " ### Keybindings " deaktiviere Ex-Mode keybinding :nnoremap Q " Ctrl+S zum speichern nmap :w " ctrl+W zum schließen nmap :q " ctrl+P: set paste nmap :set paste! " ctrl+t fuer neuen tab nmap :tabnew " leader-key :let mapleader = "," " vim.fugitiv in neuem tab nmap :tab G " markiere text im visual mode; suche dann danach mit // im visual-mode " https://vim.fandom.com/wiki/Search_for_visually_selected_text vnoremap // y/\V=escape(@",'/\') " https://shapeshed.com/vim-statuslines/ function! GitBranch() return system("git rev-parse --abbrev-ref HEAD 2>/dev/null | tr -d '\n'") endfunction " ### Statuszeile " https://stackoverflow.com/questions/56274737/what-is-the-return-value-for-visual-block-mode-in-vimscript " https://jdhao.github.io/2019/11/03/vim_custom_statusline/ " https://shapeshed.com/vim-statuslines/ " https://jip.dev/posts/a-simpler-vim-statusline/ " https://jordanelver.co.uk/blog/2015/05/27/working-with-vim-colorschemes/ " blende insert/visual/... in der commandline aus, steht in lightline set noshowmode set laststatus=2 " Funktion git branch function! StatuslineGit() let l:branchname = GitBranch() return strlen(l:branchname) > 0?' '.l:branchname.' ':'' endfunction set statusline= set statusline+=%#StatusLineTerm# set statusline+=%{g:currentmode[mode()]} set statusline+=%#PmenuSel# set statusline+=%{StatuslineGit()} set statusline+=%#ToolButton# set statusline+=\%f set statusline+=%#TabLineFill# set statusline+=%m set statusline+=%= set statusline+=\ %y set statusline+=\ %{&fileencoding?&fileencoding:&encoding} set statusline+=\ [%{&fileformat}\] set statusline+=\ %l:%c set statusline+=\ set statusline+=%{&paste?'PASTE':''} let g:currentmode={ \ 'n' : 'NORMAL', \ 'no' : 'NORMAL·OPERATOR PENDING', \ 'v' : 'VISUAL', \ 'V' : 'VISUAL·LINE', \ "\" : 'VISUAL·BLOCK', \ 's' : 'SELECT', \ 'S' : 'SELECT·LINE', \ 'x19' : 'SELECT-BLOCK', \ 'i' : 'INSERT', \ 'R' : 'REPLACE', \ 'Rv' : 'VISUAL·REPLACE', \ 'c' : 'COMMAND', \ 'cv' : 'VIM EX', \ 'ce' : 'EX', \ 'r' : 'PROMPT', \ 'rm' : 'MORE ', \ 'r?' : 'CONFIRM ', \ '!' : 'SHELL ', \ 't' : 'TERMINAL ' \}