if has('nvim') Plug 'Shougo/deoplete.nvim', {'do': ':UpdateRemotePlugins'} Plug 'Shougo/denite.nvim', { 'do': ':UpdateRemotePlugins' } else Plug 'Shougo/deoplete.nvim' Plug 'Shougo/denite.nvim' Plug 'roxma/nvim-yarp' Plug 'roxma/vim-hug-neovim-rpc' endif " java extension to deoplete Plug 'artur-shaik/vim-javacomplete2', {'for': 'java'} Plug 'neomake/neomake' Plug 'puremourning/vimspector' Plug 'kana/vim-operator-user' Plug 'rhysd/vim-clang-format' Plug 'justmao945/vim-clang', {'for': ['c', 'cpp', 'objc']} " Prevent slow foling update, e.g., for vimtex Plug 'Konfekt/FastFold' Plug 'lervag/vimtex', {'for': 'tex'} Plug 'mhinz/vim-signify' Plug 'tpope/vim-fugitive' Plug 'gko/vim-coloresque' Plug 'vimwiki/vimwiki' Plug 'jceb/vim-orgmode', {'for': ['org']} Plug 'cakebaker/scss-syntax.vim', {'for': 'scss'} Plug 'hail2u/vim-css3-syntax', {'for': ['scss', 'css']} Plug 'https://gitlab.com/dbeniamine/vim-mail' Plug 'Konfekt/vim-DetectSpellLang', {'do': 'spell'} Plug 'dpelle/vim-LanguageTool' " Disable devicons on linux terminal if $TERM == 'linux' let g:enable_plugin_devicons=0 " Enable loading of devicons on all others else let g:enable_plugin_devicons=1 endif Plug 'ryanoasis/vim-devicons', Cond(g:enable_plugin_devicons) Plug 'joom/latex-unicoder.vim' Plug 'chrisbra/unicode.vim' Plug 'sjl/splice.vim', {'on': 'SpliceInit'} " Costs a second startup time Plug 'dbeniamine/cheat.sh-vim', {'on': 'Cheat'} Plug 'sheerun/vim-polyglot' if has('nvim-0.5') Plug 'nvim-treesitter/nvim-treesitter', {'do': ':TSUpdate'} Plug 'nvim-treesitter/nvim-treesitter-refactor', {'do': ':TSUpdate'} endif function PluginsNorootNolowendboxConfig() let g:neomake_c_enabled_makers = ['clangtidy', 'clangcheck'] let g:neomake_cpp_enabled_makers = ['clangtidy', 'clangcheck'] let g:clang_compilation_database = '.' " Taken from neomake if OnBattery() call neomake#configure#automake('w') else call neomake#configure#automake('nw', 1000) endif " Speedup deoplete startup time, see deoplete FAQ let g:python3_host_prog = '/usr/bin/python3' " deoplete requires huge startuptime. Delay loading upon first InsertEnter. let g:deoplete#enable_at_startup = 0 call deoplete#custom#option({ \ 'smart_case' : v:true, \ 'auto_refresh_delay' : 100, \ }) au InsertEnter * call deoplete#enable() " The denite settings are largely stolen from spacevim let s:denite_options = { \ 'default' : { \ 'winheight' : 15, \ 'mode' : 'insert', \ 'start_filter' : 1, \ 'quit' : 1, \ 'highlight_matched_char' : 'MoreMsg', \ 'highlight_matched_range' : 'MoreMsg', \ 'direction': 'rightbelow', \ }} augroup spacevim_layer_denite autocmd! autocmd FileType denite call s:denite_my_settings() augroup END function! s:denite_my_settings() abort nnoremap i \ denite#do_map('open_filter_buffer') nnoremap ' \ denite#do_map('toggle_select').'j' nnoremap q \ denite#do_map('quit') nnoremap \ denite#do_map('do_action', 'tabopen') nnoremap \ denite#do_map('do_action', 'vsplit') nnoremap \ denite#do_map('do_action', 'split') nnoremap \ denite#do_map('do_action') nnoremap p \ denite#do_map('do_action', 'preview') nnoremap j nnoremap k endfunction " FIND and GREP COMMANDS if executable('rg') " Ripgrep command on grep source call denite#custom#var('grep', 'command', ['rg']) call denite#custom#var('grep', 'default_opts', \ ['--vimgrep', '--no-heading']) call denite#custom#var('grep', 'recursive_opts', []) call denite#custom#var('grep', 'pattern_opt', ['--regexp']) call denite#custom#var('grep', 'separator', ['--']) call denite#custom#var('grep', 'final_opts', []) endif let s:insert_mode_mappings = [ \ ['jk', '', 'noremap'], \ ['', '', 'noremap'], \ ['', '', 'noremap'], \ ['', '', 'noremap'], \ ['', '', 'noremap'], \ ['', '', 'noremap'], \ ['', '', 'noremap'], \ ['', '', 'noremap'], \ ['', '', 'noremap'], \ ['', '', 'noremap'], \ ['', '', 'noremap'], \ ['', '', 'noremap'], \ ['', '', 'noremap'], \ ['', '', 'noremap'], \ ] let s:normal_mode_mappings = [ \ ["'", '', 'noremap'], \ ['', '', 'noremap'], \ ['', '', 'noremap'], \ ['', '', 'noremap'], \ ['', '', 'noremap'], \ ['', '', 'noremap'], \ ['', '', 'noremap'], \ ['gg', '', 'noremap'], \ ['', '', 'noremap'], \ ['', '', 'noremap'], \ ['', '', 'noremap'], \ ['q', '', 'noremap'], \ ['r', '', 'noremap'], \ ] " Have deoplete completion for vimtex (e.g., bibtex entries) au Filetype tex call deoplete#custom#var('omni', 'input_patterns', { \ 'tex': g:vimtex#re#deoplete }) if has('nvim-0.5') set foldexpr=nvim_treesitter#foldexpr() lua <dc VimspectorContinue nmap ds VimspectorStop nmap dr :call VimspectorRestartOrCreateConfig() "nmap dr :call vimspector#Restart() nmap drr :call vimspector#Reset() nmap dp VimspectorPause nmap db VimspectorToggleBreakpoint nmap dcb VimspectorToggleConditionalBreakpoint nmap dfb VimspectorAddFunctionBreakpoint nmap dtc VimspectorRunToCursor nmap do VimspectorStepOver nmap di VimspectorStepInto nmap dof VimspectorStepOut " for normal mode, the word under the cursor nmap de VimspectorBalloonEval " for visual mode, the visually selected text xmap de VimspectorBalloonEval au BufNewFile .vimspector.json read ~/.vim/vimspector-config/vimspector.json " Do not show diagnostic window of vim-clang let g:clang_diagsopt = '' augroup ClangFormatSettings au! au FileType c,cpp,objc,javascript,java,typescript,protobuf,cuda,vala \ vmap cf (operator-clang-format) au FileType c,cpp,objc,javascript,java,typescript,protobuf,cuda,vala \ nmap cf :ClangFormat augroup END endfunction