let mapleader ="," """ Begin Plugin section if ! filereadable(expand('~/.config/nvim/autoload/plug.vim')) echo "Downloading junegunn/vim-plug to manage plugins..." silent !mkdir -p ~/.config/nvim/autoload/ silent !curl "https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim" > ~/.config/nvim/autoload/plug.vim autocmd VimEnter * PlugInstall endif call plug#begin('~/.local/share/nvim/plugged') Plug 'airblade/vim-gitgutter' " git upgrades Plug 'alvan/vim-closetag' " auto close HTML tags Plug 'donRaphaco/neotex' , {'for': 'tex'} " asynchronous pdf rendering for pdf Plug 'fatih/vim-go' , {'for': 'go'} " better support for golang Plug 'frazrepo/vim-rainbow' " colorized matching brackets Plug 'itchyny/lightline.vim' " fancy statusline Plug 'junegunn/fzf.vim' " quickly jump files using fzf Plug 'lervag/vimtex' , {'for' : 'tex'} " tex library for autocompletion Plug 'majutsushi/tagbar', {'on': 'TagbarToggle'} " show tags Plug 'neoclide/coc.nvim', {'do': 'yarn install --frozen-lockfile'} " autocompletion Plug 'qpkorr/vim-renamer' " bulk renamer Plug 'raimondi/delimitmate' " automatic closing of brackets Plug 'rrethy/vim-hexokinase' , {'do': 'make hexokinase'} " color Preview Plug 'ryanoasis/vim-devicons' " enable icons for vim Plug 'scrooloose/nerdtree', {'on': 'NERDTreeToggle'} " filetree Plug 'sirver/ultisnips' " snippets Plug 'tomasiser/vim-code-dark' " adding colorscheme Plug 'tpope/vim-fugitive' " git wrapper Plug 'tpope/vim-surround' " help for quotes/parantheses Plug 'uiiaoo/java-syntax.vim' , {'for': 'java'} " better syntax highlight for java than default Plug 'whonore/coqtail' , {'for': 'v'} " coq interactive proof Plug 'zah/nim.vim' , {'for': 'nim'} " Highlighting for nim call plug#end() " alvan/vim-closetag let g:closetag_filenames = '*.html,*.xhtml,*.phtml' let g:closetag_xhtml_filenames = '*.xhtml,*.jsx' let g:closetag_filetypes = 'html,xhtml,phtml' let g:closetag_xhtml_filetypes = 'xhtml,jsx' let g:closetag_emptyTags_caseSensitive = 1 let g:closetag_regions = { \ 'typescript.tsx': 'jsxRegion,tsxRegion', \ 'javascript.jsx': 'jsxRegion', \ } let g:closetag_shortcut = '>' let g:closetag_close_shortcut = '>' " donRaphaco/neotex let g:neotex_enabled = 2 " fatih/vim-go let g:go_def_mapping_enabled = 0 " frazrepo/vim-rainbow au FileType,BufNewFile,BufRead java,c,cpp,py,h call rainbow#load() " itchyny/lightline.vim let g:lightline = { 'colorscheme': 'codedark'} set noshowmode " junegunn/fzf.vim let $FZF_DEFAULT_COMMAND = 'find . ~ -type f' nmap :FZF " majutsushi/tagbar map :TagbarToggle " neoclide/coc.nvim inoremap \ pumvisible() ? "\" : \ check_back_space() ? "\" : \ coc#refresh() inoremap pumvisible() ? "\" : "\" function! s:check_back_space() abort let col = col('.') - 1 return !col || getline('.')[col - 1] =~# '\s' endfunction let g:coc_global_extensions = [ \ 'coc-java', \ 'coc-markdownlint', \ 'coc-pyright', \ 'coc-sh', \ 'coc-vimtex', \ ] if has('nvim') inoremap coc#refresh() else inoremap coc#refresh() endif inoremap pumvisible() ? coc#_select_confirm() \: "\u\\=coc#on_enter()\" nmap gd (coc-definition) nmap gy (coc-type-definition) nmap gi (coc-implementation) nmap gr (coc-references) nnoremap K :call show_documentation() function! s:show_documentation() if (index(['vim','help'], &filetype) >= 0) execute 'h '.expand('') elseif (coc#rpc#ready()) call CocActionAsync('doHover') else execute '!' . &keywordprg . " " . expand('') endif endfunction autocmd CursorHold * silent call CocActionAsync('highlight') nmap (coc-rename) xmap f (coc-format-selected) nmap f (coc-format-selected) augroup mygroup autocmd! autocmd FileType typescript,json setl formatexpr=CocAction('formatSelected') autocmd User CocJumpPlaceholder call CocActionAsync('showSignatureHelp') augroup end " rrethy/vim-hexokinase let g:Hexokinase_refreshEvents = ['InsertLeave'] let g:Hexokinase_optInPatterns = [ \ 'full_hex', \ 'triple_hex', \ 'rgb', \ 'rgba', \ 'hsl', \ 'hsla', \ 'color_names' \] let g:Hexokinase_highlighters = ['backgroundfull'] autocmd VimEnter * HexokinaseTurnOn " scrooloose/nerdtree map :NERDTreeToggle autocmd bufenter * if (winnr("$") == 1 && exists("b:NERDTree") && b:NERDTree.isTabTree()) | q | endif let g:NERDTreeWinPos = "left" " sirver/ultisnips let g:UltiSnipsExpandTrigger="" " tpope/vim-fugitive nnoremap ga :Git add %:p nnoremap gd :Git diff nnoremap gc :Gcommit nnoremap go :Git checkout nnoremap gh :diffget //3 nnoremap gr :Gread nnoremap gu :diffget //2 nnoremap gs :G " whonore/coqtail function g:CoqtailHighlight() hi def CoqtailChecked guifg=#44FF44 hi def CoqtailSent guifg=#777777 endfunction """ end plugin section set go=a " enable mouse for all modes set mouse=a set clipboard+=unnamedplus " enable command completion set wildmode=longest,list,full " setting Tab-length set expandtab set softtabstop=4 set shiftwidth=4 " splits open at the bottom and right, which is non-retarded, unlike vim defaults. set splitbelow splitright " disable case sensitive matching set ignorecase " enable nocompatible mode set nocompatible " enable Plugins filetype plugin on " enable syntax highlighting syntax on " enable true colors set termguicolors " set utf-8 encoding set encoding=utf-8 " show relative numbers on left side set number relativenumber " speedup vim with long lines set ttyfast set lazyredraw " textEdit might fail without hidden set hidden " disable Backupfiles for Lsp set nobackup set nowritebackup " dont pass messages to ins-completion-menu set shortmess+=c " always show the signcolumn, otherwise it would shift the text each time " diagnostics appear/become resolved. if has("patch-8.1.1564") " Recently vim can merge signcolumn and number column into one set signcolumn=number else set signcolumn=yes endif " enable persistent undo if has('persistent_undo') set undofile set undodir=$XDG_CACHE_HOME/vim/undo endif " unmap unwanted commands nnoremap nnoremap nnoremap nnoremap nnoremap inoremap inoremap inoremap inoremap inoremap inoremap inoremap inoremap inoremap inoremap inoremap " mapping Dictionaries nnoremap :setlocal spell! spelllang=de_de nnoremap :setlocal spell! spelllang=en_us " compiler for languages nnoremap c :w! \| !compiler % " open corresponding file (pdf/html/...) nnoremap p :!opout % " shortcut for split navigation nnoremap h nnoremap j nnoremap k nnoremap l " save file as sudo on files that require root permission cnoremap w!! execute 'silent! write !sudo tee % >/dev/null' edit! " alias for replacing nnoremap ss :%s//gI " delete trailing whitespaces on save fun! TrimWhitespace() let l:save = winsaveview() keeppatterns %s/\s\+$//e call winrestview(l:save) endfun autocmd BufWritePre * :call TrimWhitespace() " read files correctly autocmd BufRead,BufNewFile *.tex set filetype=tex autocmd BufRead,BufNewFile *.html set filetype=html autocmd BufRead,BufNewFile *.h set filetype=c autocmd BufRead,BufNewFile *.nim set filetype=nim " formatting options autocmd FileType java setlocal shiftwidth=2 softtabstop=2 autocmd FileType markdown setlocal shiftwidth=2 softtabstop=2 " formatting programs autocmd FileType c setlocal formatprg=astyle\ --mode=c\ --style=ansi autocmd FileType c noremap gggqG autocmd FileType html noremap :silent %!tidy -q -i --show-errors 0 autocmd FileType java setlocal formatprg=astyle\ --indent=spaces=2\ --style=google autocmd FileType java noremap gggqG autocmd FileType markdown noremap :silent %!prettier --stdin-filepath % autocmd FileType nim noremap :silent !nimpretty % autocmd FileType python setlocal formatprg=autopep8\ - autocmd FileType python noremap gggqG autocmd FileType tex,latex setlocal formatprg=latexindent\ - autocmd FileType tex,latex noremap gggqG " cleanup certain files after leaving the editor autocmd VimLeave *.tex !texclear % autocmd VimLeave *.c !cclear " highlighting break line autocmd BufEnter,FileType c set colorcolumn=80 autocmd BufEnter,FileType java set colorcolumn=100 autocmd BufEnter,FileType markdown set colorcolumn=80 autocmd BufEnter,FileType tex set colorcolumn=80 autocmd BufEnter,FileType nim set colorcolumn=80 autocmd BufEnter,FileType python set colorcolumn=80 " colorscheme set background=dark colorscheme codedark highlight colorcolumn guibg=#772222 " python let g:python_host_prog = "/usr/bin/python2" let g:python3_host_prog = "/usr/bin/python3" " irc compatibility to interactive nnoremap is :.w >> indd