" ============================================================================ " Vim-plug initialization let vim_plug_just_installed = 0 let vim_plug_path = expand('~/.config/nvim/autoload/plug.vim') if !filereadable(vim_plug_path) echo "Installing Vim-plug..." echo "" silent !mkdir -p "$HOME/.config/nvim/autoload" silent !curl -fLo ~/.config/nvim/autoload/plug.vim --create-dirs https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim let vim_plug_just_installed = 1 endif " manually load vim-plug the first time if vim_plug_just_installed :execute 'source '.fnameescape(vim_plug_path) :PlugInstall endif " ============================================================================ " Source plugs call plug#begin('~/.config/nvim/plugged') " Use ,e to jump to plugin config files. nnoremap e viW"ay :e a " Use ,g to jump to plugin readme on github. nnoremap g 0wwlvt."ay :!open https://github.com/a " Use ,x to format Plug 'junegunn/vim-emoji' -> runtime plugconfig/junegunn/vim-emoji nnoremap x 0"xyyciwruntime plugconfig/t'xxf'xa.vime"xp runtime plugconfig/junegunn/vim-emoji.vim runtime plugconfig/pechorin/any-jump.vim runtime plugconfig/townk/vim-autoclose.vim runtime plugconfig/tpope/vim-repeat.vim runtime plugconfig/liuchengxu/vim-which-key.vim "runtime plugconfig/airblade/vim-rooter.vim runtime plugconfig/luochen1990/rainbow.vim runtime plugconfig/preservim/nerdcommenter.vim runtime plugconfig/preservim/nerdtree.vim runtime plugconfig/neoclide/coc.vim.vim runtime plugconfig/junegunn/fzf.vim runtime plugconfig/junegunn/vim-peekaboo.vim runtime plugconfig/arielrossanigo/dir-configs-override.vim.vim runtime plugconfig/voldikss/vim-floaterm.vim runtime plugconfig/justinmk/vim-sneak.vim runtime plugconfig/honza/vim-snippets.vim "runtime plugconfig/unblevable/quick-scope.vim runtime plugconfig/junegunn/vim-github-dashboard.vim runtime plugconfig/jmcomets/vim-pony.vim Plug 'psliwka/vim-smoothie' Plug 'airblade/vim-gitgutter' " Tagbar ----------------------------- Plug 'majutsushi/tagbar' " TODO known problems: " * current block not refreshing' " " toggle tagbar display nmap tb :TagbarToggle " autofocus on tagbar open let g:tagbar_autofocus = 1 " Search results counter Plug 'vim-scripts/IndexedSearch' " Plugin for live preview of LaTex Plug 'donRaphaco/neotex', {'for': 'tex'} " Lightline " Lightline Themes Configurations Plug 'itchyny/lightline.vim' let g:lightline = { \ 'colorscheme': 'simpleblack', \ 'active': { \ 'left': [ [ 'mode', 'paste' ], \ [ 'cocstatus', 'readonly', 'filename', 'modified' ] ] \ }, \ 'component_function': { \ 'cocstatus': 'coc#status' \ }, \ } " Pending tasks list Plug 'fisadev/FixedTaskList.vim' " Tasklist ------------------------------ " show pending tasks list map tl :TaskList " Completion from other opened files Plug 'Shougo/context_filetype.vim' " Autoclose ------------------------------ " Automatically close parenthesis, etc Plug 'Townk/vim-autoclose' " Fix to let ESC work as espected with Autoclose plugin " (without this, when showing an autocompletion window, ESC won't leave insert " mode) let g:AutoClosePumvisible = {"ENTER": "\", "ESC": "\"} let g:AutoClosePairs = "() {} [] ' ` \" " " Indent text object Plug 'michaeljsmith/vim-indent-object' " Indentation based movements Plug 'jeetsukumaran/vim-indentwise' " Better language packs Plug 'sheerun/vim-polyglot' " Ack code search (requires ack installed in the system) Plug 'mileszs/ack.vim' " TODO is there a way to prevent the progress which hides the editor? " Paint css colors with the real color Plug 'lilydjwg/colorizer' " TODO is there a better option for neovim? " Generate html in a simple way Plug 'mattn/emmet-vim' " Emmet mappings let g:user_emmet_mode='a' " enable all functions in all modes let g:user_emmet_leader_key='' " Git integration Plug 'tpope/vim-fugitive' " Signify ------------------------------ " Git/mercurial/others diff icons on the side of the file lines Plug 'mhinz/vim-signify' " this first setting decides in which order try to guess your current vcs " UPDATE it to reflect your preferences, it will speed up opening files let g:signify_vcs_list = [ 'git', 'hg' ] " mappings to jump to changed blocks nmap sn (signify-next-hunk) nmap sp (signify-prev-hunk) " nicer colors highlight DiffAdd cterm=bold ctermbg=none ctermfg=119 highlight DiffDelete cterm=bold ctermbg=none ctermfg=167 highlight DiffChange cterm=bold ctermbg=none ctermfg=227 highlight SignifySignAdd cterm=bold ctermbg=237 ctermfg=119 highlight SignifySignDelete cterm=bold ctermbg=237 ctermfg=167 highlight SignifySignChange cterm=bold ctermbg=237 ctermfg=227 " Linters Plug 'neomake/neomake' " TODO is it running on save? or when? " TODO not detecting errors, just style, is it using pylint? " Nice icons: Need to install patched font for this to work Plug 'ryanoasis/vim-devicons' " Devicon Configurations " loading the plugin let g:webdevicons_enable = 1 " This is solves a bug in devicons that appears when sourcing vimrc if !exists('g:syntax_on') syntax enable endif if exists("g:loaded_webdevicons") call webdevicons#refresh() endif let g:webdevicons_enable_nerdtree = 1 " let g:NERDTreeHighlightFolders = 1 let g:NERDTreeHighlightFoldersFullName = 1 let g:WebDevIconsUnicodeDecorateFolderNodes = 1 " enable folder glyph flag let g:DevIconsEnableFoldersOpenClose = 1 let g:DevIconsEnableFolderExtensionPatternMatching = 1 let g:webdevicons_conceal_nerdtree_brackets = 1 " Basically disable nerdtree markers let g:NERDTreeDirArrowExpandable = ' ' let g:NERDTreeDirArrowCollapsible = ' ' let g:WebDevIconsUnicodeDecorateFolderNodesDefaultSymbol = ' ' let g:DevIconsDefaultFolderOpenSymbol = ' ' " add or override individual additional filetypes let g:WebDevIconsUnicodeDecorateFileNodesExtensionSymbols = {} " needed let g:WebDevIconsUnicodeDecorateFileNodesExtensionSymbols['mkv'] = 'ƛ' " Show indention level through lines Plug 'Yggdroot/indentLine' " Indention Config let g:indentLine_char = '┊' " Distraction free programming Plug 'junegunn/goyo.vim' " Goyo mappings nmap :Goyo " Slimux Plug 'lotabout/slimux' map :SlimuxREPLSendLinej vmap :SlimuxREPLSendSelection Plug 'pangloss/vim-javascript' "Plug 'iamcco/markdown-preview.nvim', { 'do': 'cd app && yarn install' } "Plug 'neoclide/coc.nvim', {'branch': 'release'} Plug 'neoclide/coc.nvim', {'do': { -> coc#util#install()}} Plug 'neoclide/coc-snippets', {'do': 'yarn install --frozen-lockfile'} Plug 'neoclide/coc-tsserver', {'do': 'yarn install --frozen-lockfile'} Plug 'neoclide/coc-prettier', {'do': 'yarn install --frozen-lockfile'} Plug 'neoclide/coc-eslint', {'do': 'yarn install --frozen-lockfile'} Plug 'neoclide/coc-css', {'do': 'yarn install --frozen-lockfile'} Plug 'neoclide/coc-lists', {'do': 'yarn install --frozen-lockfile'} " mru and stuff Plug 'neoclide/coc-highlight', {'do': 'yarn install --frozen-lockfile'} " color highlighting Plug 'neoclide/jsonc.vim' Plug 'ludovicchabant/vim-gutentags' Plug 'vimwiki/vimwiki' Plug 'bfredl/nvim-ipy' Plug 'vyperlang/vim-vyper' Plug 'jmcantrell/vim-virtualenv' Plug 'mkitt/tabline.vim' Plug 'prisma/vim-prisma' "" LSP Support "Plug 'neovim/nvim-lspconfig' " Required "Plug 'williamboman/mason.nvim', {'do': ':MasonUpdate'} " Optional "Plug 'williamboman/mason-lspconfig.nvim' " Optional """ Autocompletion ""Plug 'hrsh7th/nvim-cmp' " Required ""Plug 'hrsh7th/cmp-nvim-lsp' " Required ""Plug 'L3MON4D3/LuaSnip' " Required "Plug 'VonHeikemen/lsp-zero.nvim', {'branch': 'v2.x'} "Plug 'lukas-reineke/lsp-format.nvim' " Tell vim-plug we finished declaring plugins, so it can load them call plug#end() "lua <