134 lines
4.2 KiB
VimL
134 lines
4.2 KiB
VimL
" 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'
|
|
" statusline
|
|
Plugin 'itchyny/lightline.vim'
|
|
" languagepack
|
|
Plugin 'sheerun/vim-polyglot'
|
|
" buffer wechseln
|
|
Plugin 'jeetsukumaran/vim-buffergator'
|
|
" fuzzy finder
|
|
Plugin 'ctrlpvim/ctrlp.vim'
|
|
" git integration G:
|
|
Plugin 'tpope/vim-fugitive'
|
|
" git integration
|
|
Plugin 'jreybert/vimagit'
|
|
" auto einrueckung
|
|
Plugin 'tpope/vim-sleuth'
|
|
" zeilen ein/auskommentieren
|
|
Plugin 'tpope/vim-commentary'
|
|
call vundle#end()
|
|
|
|
|
|
" allgemeine Optionen
|
|
set showcmd " Show (partial) command in status line.
|
|
set virtualedit=onemore
|
|
set encoding=UTF-8
|
|
set visualbell
|
|
set ruler
|
|
set undolevels=1000
|
|
set backspace=indent,eol,start
|
|
|
|
set ignorecase " Ignore case in search patterns.
|
|
set smartcase " Override the 'ignorecase' option if the search pattern contains upper case characters.
|
|
|
|
set nowrap " verhindert zeilenumbrüche
|
|
set showbreak=+++
|
|
set wrap linebreak " https://vim.fandom.com/wiki/Automatic_word_wrapping
|
|
|
|
set hlsearch " When there is a previous search pattern, highlight all its matches.
|
|
set gdefault " global bei suche immer mit an
|
|
set incsearch " While typing a search command, show immediately where the so far typed pattern matches.
|
|
|
|
set number " Show line numbers.
|
|
"https://jeffkreeftmeijer.com/vim-number/
|
|
set number relativenumber
|
|
augroup numbertoggle
|
|
autocmd!
|
|
autocmd BufEnter,FocusGained,InsertLeave * set relativenumber
|
|
autocmd BufLeave,FocusLost,InsertEnter * set norelativenumber
|
|
augroup END
|
|
" toggle linenumbers
|
|
nmap <C-n> :set norelativenumber!<CR>:set nonu!<CR>
|
|
|
|
syntax on " Enable syntax highlighting
|
|
set shiftwidth=4 " Number of spaces to use for each step of (auto)indent.
|
|
set mouse=a " Enable mouse drag on window splits
|
|
set clipboard=unnamedplus " https://unix.stackexchange.com/questions/12535/how-to-copy-text-from-vim-to-an-external-program
|
|
|
|
" Keybindings
|
|
" Ctrl+S zum speichern
|
|
nmap <C-s> :w<CR>
|
|
" ctrl+W zum schließen
|
|
nmap <C-w> :q<CR>
|
|
" ctrl+P: set paste
|
|
nmap <C-p> :set paste!<CR>
|
|
" ctrl+t fuer neuen tab
|
|
nmap <C-t> :tabnew<CR>
|
|
" leader-key
|
|
:let mapleader = ","
|
|
|
|
" lightline/statusline
|
|
" blende insert/visual/... in der commandline aus, steht in lightline
|
|
set noshowmode
|
|
set laststatus=2
|
|
let g:lightline = {
|
|
\ 'active': {
|
|
\ 'left': [ [ 'mode', 'paste' ],
|
|
\ [ 'gitbranch', 'readonly', 'filename', 'modified' ] ]
|
|
\ },
|
|
\ 'component_function': {
|
|
\ 'gitbranch': 'FugitiveHead'
|
|
\ },
|
|
\ }
|
|
|
|
" buffergator
|
|
" 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.
|
|
" https://medium.com/usevim/vim-101-set-hidden-f78800142855
|
|
set hidden
|
|
" öffne buffergator drawer horizontal unten
|
|
" https://github.com/jeetsukumaran/vim-buffergator/blob/master/doc/buffergator.txt
|
|
let g:buffergator_viewport_split_policy = 'B'
|
|
" gibt an wie hoch der drawer sein soll
|
|
let g:buffergator_hsplit_size = '10'
|
|
" Move to the next buffer
|
|
nmap <C-l> :bnext<CR>
|
|
" Move to the previous buffer
|
|
nmap <C-h> :bprevious<CR>
|
|
|
|
|
|
|
|
" 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
|
|
nmap <C-f> :CtrlP<CR>
|
|
" 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 = ''
|
|
" vimagit
|
|
" https://github.com/jreybert/vimagit#mappings
|
|
nmap <Leader>m :Magit<cr>
|
|
|
|
" 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,*~
|
|
|
|
" zeige "matching" klammer usw.
|
|
set showmatch
|