" Install vim-plug if not installed already (requires curl) if empty(glob('~/.vim/autoload/plug.vim')) silent !curl -fLo ~/.vim/autoload/plug.vim --create-dirs \ https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim autocmd VimEnter * PlugInstall --sync | source ~/.vimrc endif " Plugins call plug#begin('~/.vim/vim-plug') " Basic vim config Plug 'tpope/vim-sensible' " Colorscheme Plug 'https://github.com/morhetz/gruvbox' " Csv files 🤦 Plug 'https://github.com/mechatroner/rainbow_csv', { 'for': 'csv' } " Asynchronous Linting Engine Plug 'https://github.com/dense-analysis/ale' " Git Plug 'https://github.com/tpope/vim-fugitive' " Comment shit easily Plug 'https://github.com/tpope/vim-commentary' " Browse file system Plug 'https://github.com/scrooloose/nerdtree', { 'on': 'NERDTreeToggle' } " status line Plug 'vim-airline/vim-airline' Plug 'vim-airline/vim-airline-themes' " Tags integration Plug 'https://github.com/preservim/tagbar' " Insert parentheses in pairs Plug 'https://github.com/jiangmiao/auto-pairs' Plug 'https://github.com/amix/open_file_under_cursor.vim' " Multi cursor Plug 'https://github.com/mg979/vim-visual-multi' " Yank history Plug 'https://github.com/maxbrunsfeld/vim-yankstack' " Mark indentation level Plug 'https://github.com/nathanaelkane/vim-indent-guides' if executable('meson') Plug 'https://github.com/igankevich/mesonic' endif " fzf Plug 'junegunn/fzf' Plug 'junegunn/fzf.vim' " Open tags with fzf's :Tags if executable('ctags') Plug 'https://github.com/ludovicchabant/vim-gutentags.git' endif " snippets if has('python3') Plug 'https://github.com/SirVer/ultisnips' Plug 'https://github.com/honza/vim-snippets' endif " Git gutter line Plug 'https://github.com/airblade/vim-gitgutter' " Zero distractions Plug 'https://github.com/junegunn/goyo.vim' " Highlight lines not covered by tests Plug 'https://github.com/mgedmin/coverage-highlight.vim' "Languages Plug 'https://github.com/bfrg/vim-cpp-modern', {'for': 'cpp'} Plug 'epheien/termdbg', {'for': ['c', 'cpp']} if executable('cargo') Plug 'https://github.com/rust-lang/rust.vim', {'for': 'rust'} endif Plug 'https://github.com/vim-scripts/nginx.vim', {'for': 'nginx'} Plug 'https://github.com/plasticboy/vim-markdown', {'for': 'markdown'} Plug 'https://github.com/cespare/vim-toml', {'for': 'toml'} Plug 'https://github.com/vim-scripts/iptables', {'for': 'iptables'} if executable('vite') " TODO: check if plugin is still up-to-date Plug 'https://github.com/leafoftree/vim-vue-plugin', {'for': 'vue'} endif if executable('terraform') Plug 'https://github.com/hashivim/vim-terraform', {'for': 'terraform'} endif if executable('go') Plug 'https://github.com/fatih/vim-go', {'for': 'go'} endif if executable('adb') && executable('gradle') Plug 'https://github.com/udalov/kotlin-vim', {'for': 'kotlin'} Plug 'https://github.com/hsanson/vim-android', {'for': 'java'} endif if executable('qml') Plug 'https://github.com/peterhoeg/vim-qml', {'for': 'qml'} endif if executable('pytest') Plug 'https://github.com/alfredodeza/pytest.vim', {'for': 'python'} endif " Colorize hex codes and/or color strings Plug 'https://github.com/chrisbra/Colorizer' " No RGB, no party let vim_razer = expand('~/projects_razer/vim-razer') if isdirectory(vim_razer) Plug vim_razer endif if has('nvim') Plug 'Shougo/deoplete.nvim', { 'do': ':UpdateRemotePlugins' } else Plug 'Shougo/deoplete.nvim' Plug 'roxma/nvim-yarp' Plug 'roxma/vim-hug-neovim-rpc' endif let g:deoplete#enable_at_startup = 1 if g:uname ==? 'Linux' Plug 'https://github.com/HiPhish/info.vim' endif call plug#end() " Install plugins if missing if ! isdirectory(expand('~/.vim/vim-plug')) PlugInstall endif