diff options
| -rw-r--r-- | .vimrc | 478 |
1 files changed, 142 insertions, 336 deletions
@@ -1,65 +1,44 @@ " Plugin Manager {{{ call plug#begin('~/.vim/plugged') + """ Customization Plug 'morhetz/gruvbox', {'rtp': 'vim'} " Color theme - Plug 'junegunn/fzf' " Used for commands like :Commits, :History, :Files - Plug 'junegunn/fzf.vim' - Plug 'preservim/nerdtree' " Browse directories (:NERDTree) - Plug 'Raimondi/delimitMate' " Autocomplete brackets and quotes - Plug 'tomtom/tcomment_vim' " Toggle comments (gc, gcc) - Plug 'godlygeek/tabular' " Line up text by a given character (:Tabularize /CHAR) - Plug 'vim-syntastic/syntastic' " Syntax error checker - Plug 'neoclide/coc.nvim', {'branch': 'release'} " IntelliSense practically - Plug 'itchyny/lightline.vim' " Statusline and tabline for Vim - Plug 'tpope/vim-fugitive' " git integration - Plug 'mbbill/undotree' " Easily interact with undo history - Plug 'OmniSharp/omnisharp-vim' " C# tools (autocompletion, ...) - Plug 'wakatime/vim-wakatime' " Time tracking via wakaime.com - Plug 'dense-analysis/ale' " Syntax checker via LSP - Plug 'ryanoasis/vim-devicons' " Icons on stuff like NERDTree - Plug 'honza/vim-snippets' " Ready snippets for some langauges - Plug 'pseewald/vim-anyfold' " Better folding - Plug 'editorconfig/editorconfig-vim' " Support for EditorConfig - Plug 'tpope/vim-eunuch' " Easy UNIX shell commands - Plug 'mg979/vim-visual-multi' " Multiple line cursor (and other stuff) - Plug 'zivyangll/git-blame.vim' " Show who last edited a line - Plug 'kien/tabman.vim' " Show open buffers - Plug 'alvan/vim-closetag' " Automatically add HTML closing tags - Plug 'OrangeT/vim-csharp' - Plug 'neovimhaskell/haskell-vim' - Plug 'davidhalter/jedi-vim' - Plug 'fatih/vim-go', { 'do': ':GoUpdateBinaries' } - Plug 'digitaltoad/vim-pug' + Plug 'itchyny/lightline.vim' " Statusline and tabline for Vim + Plug 'ryanoasis/vim-devicons' " Icons on stuff like NERDTree + + """ Quality of life + Plug 'tomtom/tcomment_vim' " Toggle comments (gc, gcc) + Plug 'Raimondi/delimitMate' " Autocomplete brackets and quotes + Plug 'preservim/nerdtree' " Browse directories (:NERDTree) + Plug 'mbbill/undotree' " Easily interact with undo history + Plug 'mg979/vim-visual-multi' " Multiple line cursor (and other stuff) + Plug 'godlygeek/tabular' " Line up text by a given character (:Tabularize /CHAR) + Plug 'tpope/vim-eunuch' " Easy UNIX shell commands + Plug 'alvan/vim-closetag' " Automatically add HTML closing tags + Plug 'kien/tabman.vim' " Show open buffers + + """ Software development + Plug 'prabirshrestha/vim-lsp' " LSP servers in Vim + Plug 'prabirshrestha/asyncomplete.vim' " Autocompletion from LSP server + Plug 'prabirshrestha/asyncomplete-lsp.vim' " Integration with vim-lsp + Plug 'mattn/vim-lsp-settings' " Automatic LSP server configuration + Plug 'honza/vim-snippets' " Ready snippets for some languages + Plug 'editorconfig/editorconfig-vim' " Support for EditorConfig + Plug 'zivyangll/git-blame.vim' " Show who last edited a line + Plug 'wakatime/vim-wakatime' " Time tracking via wakatime.com call plug#end() " }}} -" Vim-anyfold + folding {{{ - filetype plugin indent on - syntax on - autocmd Filetype * AnyFoldActivate " activate for all filetypes - autocmd FileType,BufRead vim,text,sh setlocal foldmethod=marker - set foldlevel=99 " Open all folds by default - autocmd FileType,BufRead vim,sh setlocal foldlevel=0 -" }}} - " General {{{ " Color scheme {{{ - let g:gruvbox_contrast_dark = 'hard' colorscheme gruvbox + let g:gruvbox_contrast_dark = 'hard' set background=dark " Setting dark mode " }}} - " Identation {{{ - set tabstop=4 " Show tabs as 4 wide - set shiftwidth=4 " Indent with 4 spaces - - autocmd BufRead,BufNewFile *.component.css set filetype=css - autocmd FileType css,ts setlocal ts=2 sw=2 sts=0 expandtab " Tranform tabs in CSS and TS into 2 spaces - " }}} - " Character visuals {{{ - set list " Enabled customization of whitespace characters, so spaces, tabs, EOL, etc. (:h 'list') + set list " Enabled customization of white space characters, so spaces, tabs, EOL, etc. (:h 'list') " Show tabs as a | with three spaces " DO NOT remove the trailing space in the next line! @@ -67,11 +46,12 @@ " }}} " Backspace and cursor {{{ - autocmd InsertEnter,InsertLeave * set cul! " Highlight current line, when in insert mode - set backspace=indent,eol,start " Better backspace functionality + set cul " Highlight current cursor line + autocmd InsertEnter,InsertLeave * set cul! " Don't highlight current line, when in insert mode + set backspace=indent,eol,start " Better backspace functionality - set scrolloff=0 " Don't keep any screen lines above or below the cursor set number " Show line numbers to the left + set scrolloff=0 " Don't keep any screen lines above or below the cursor set mouse=a " Mouse support " Thin cursor in insert mode in Gnome-Terminal (version >=3.16 ; also works with Terminator) @@ -87,44 +67,80 @@ endif " }}} - " Ctrl bindings {{{ + " Indentation {{{ + set tabstop=4 " Show tabs as 4 wide + set shiftwidth=4 " Indent with 4 spaces + + autocmd BufRead,BufNewFile *.component.css set filetype=css + autocmd FileType css,ts setlocal ts=2 sw=2 sts=0 expandtab " Transform tabs in CSS and TS into 2 spaces + " }}} + + " Folding {{{ + filetype plugin indent on + syntax on + autocmd FileType vim,text,sh setlocal foldmethod=marker + + set foldlevel=99 " Open all folds by default + autocmd FileType vim,sh setlocal foldlevel=0 + + set foldtext=MyFoldText() + function MyFoldText() + let line = substitute(getline(v:foldstart), "\t", repeat(" ", shiftwidth(0)), "") " Gets the first fold line and replace tabs with spaces (as many as shiftwidth is set to) + let linecount = v:foldend - v:foldstart " Calculates amount of folded lines + return line . repeat(" ", winwidth('%') - strlen(line) - 10 - strlen(linecount)) + \ . " " . linecount . " " " Shows our line, then a lot of spaces, and at the very end we have line number and arrows + endfunction + " }}} + + " Bindings {{{ + " Don't get into insert mode after adding a line with o/O + nnoremap o o<Esc> + nnoremap O O<Esc> + " Ctrl-Backspace deletes the previous word in insert mode. - noremap! <C-BS> <C-w> - noremap! <C-h> <C-w> + inoremap <C-h> <C-w> + inoremap <C-BS> <C-w> - " The usual Ctrl+s, Ctrl+v type of bindings + " Ctrl+s; Ctrl+c, Ctrl+v, Ctrl+x; Ctrl+z, Ctrl+r; Ctrl+a bindings that work on GUI applications " Partly taken from: https://gist.github.com/jshih/3423345 + imap <C-s> <ESC>:w<CR>a + nmap <C-S> <ESC>:w<CR> + "imap <C-S-z> <C-r> An impossible dream vmap <C-c> "+yi<Esc> - vmap <C-x> "+c<Esc> vmap <C-v> c<ESC>"+p<Esc> imap <C-v> <ESC>"+pa - map <C-a> ggVG + vmap <C-x> "+c<Esc> imap <C-z> <ESC>ui imap <C-r> <ESC><C-r>i - "imap <C-S-z> <C-r> An impossible dream - imap <C-s> <ESC>:w<CR>a - nmap <C-S> <ESC>:w<CR> + map <C-a> ggVG + + " Show all buffers and be able to just type in the number of the buffer map <C-f> :set nomore<Bar>:ls<Bar>:set more<CR>:b<Space> - " Use Ctrl + hjkl for navigation in insert mode - " inoremap <C-h> <Left> - " inoremap <C-j> <Down> - " inoremap <C-k> <Up> - " inoremap <C-l> <Right> - " Go between tabs with Ctrl+l (tab to the right) and Ctrl+h (tab to the left) - " nnoremap <C-l> :tabn<CR> - " nnoremap <C-h> :tabp<CR> + " Move a line up and down with Alt+k and Alt-j + execute "set <M-j>=\ej" + nnoremap <M-j> <ESC>:m+1<CR> + execute "set <M-k>=\ek" + nnoremap <M-k> <ESC>:m-2<CR> + + + " Make session file + nnoremap <F1> <ESC>:mksession! .vim-session<CR> + " Show who edited the current line from git history + nnoremap <F8> :<C-u>call gitblame#echo()<CR> + " Open lazygit in a new tab with = + nnoremap = :tab ter ++close lazygit<CR> " }}} - " Comand abbreviations {{{ - " Cyrilic (Bulgarian yawerty layout) support + " Command abbreviations {{{ + " Cyrillic (Bulgarian yawerty layout) support ca в w ca ва wa ca ь x ca ьа xa - " The following works almost the same as normal :x and :xa, but can also close running jobs (e.g. terminal windows) + " Make x and xa just save and quit without saving. This allows for closing all tabs and terminals. ca x w <bar> q! ca xa wa <bar> qa! @@ -133,37 +149,23 @@ ca te tabe " }}} - " Custom app open bindings {{{ - nnoremap <F8> :<C-u>call gitblame#echo()<CR> - nnoremap = :tab ter ++close lazygit<CR> - " }}} - - " Other bindings {{{ - " Don't get into insert mode after adding a line with o/O - nnoremap o o<Esc> - nnoremap O O<Esc> - - " Move a line up and down with Alt+k and Alt-j - execute "set <M-j>=\ej" - nnoremap <M-j> <ESC>:m+1<CR> - execute "set <M-k>=\ek" - nnoremap <M-k> <ESC>:m-2<CR> - - " Make session file - nnoremap <F1> <ESC>:mksession! .vim-session<CR> - " }}} - - " Omni complition {{{ + " Omni completion {{{ " Omni completion supports C, HTML, CSS, JavaScript, PHP, Python, Ruby, SQL, XML set omnifunc=syntaxcomplete#Complete " Completion for all supported languages " Do omni completion from Ctrl+Space - nnoremap <C-Space> <C-X><C-O> - " }}} -------------------------< + inoremap <C-@> <C-X><C-O> + + " Thanks to: https://vim.fandom.com/wiki/Make_Vim_completion_popup_menu_work_just_like_in_an_IDE + set completeopt=longest,menuone + " [ The following are disabled, because they conflict with delimitMate's autobracket feature ] + " inoremap <expr> <CR> pumvisible() ? "\<C-y>" : "\<C-g>u\<CR>" + " inoremap <expr> <C-n> pumvisible() ? '<C-n>' : '<C-n><C-r>=pumvisible() ? "\<lt>Down>" : ""<CR>' + " }}} " Spell check mode {{{ " When you press F6 it will toggle a "spell check mode", - " spell is activated and the colorscheme is changed + " spell is activated and the colour scheme is changed nmap <F6> :call SpellCheckModeToggle()<CR> function! SpellCheckModeToggle() @@ -179,6 +181,8 @@ " Scrolling (shows history) in terminal (except in lazygit) " Scroll up to activate it, and press a to deactivate it " Slightly modified version of: https://github.com/vim/vim/issues/2490#issuecomment-393973253 + tmap <silent> <ScrollWheelUp> <c-w>:call EnterNormalMode()<CR> + function! ExitNormalMode() unmap <buffer> <silent> <RightMouse> call feedkeys("a") @@ -193,8 +197,11 @@ map <buffer> <silent> <RightMouse> :call ExitNormalMode()<CR> endif endfunction - - tmap <silent> <ScrollWheelUp> <c-w>:call EnterNormalMode()<CR> + " }}} + + " Other {{{ + autocmd BufRead,BufNewFile * set tw=0 " Sets textwidth to 0 for all files (set with autocmd since just doing "set tw=0" can be overridden) + set signcolumn=number " Show signs and numbers on the same column " }}} " }}} @@ -205,56 +212,29 @@ " }}} " NERDTree {{{ - let NERDTreeCustomOpenArgs={'file':{'where':'t'}} " Open file in new tab, doesn't work only for double-click - let NERDTreeShowHidden=1 " Toggle NERDTree with Tab nmap <Tab> :NERDTreeToggle<CR> - let NERDTreeIgnore=['\.swp$', '\~$'] " Ignore file, ending with .swp and ~ + + let NERDTreeCustomOpenArgs = {'file':{'where':'t'}} " Open file in new tab, doesn't work only for double-click + let NERDTreeShowHidden = 1 + let NERDTreeWinPos = "right" + let NERDTreeIgnore = ['\.swp$', '\~$'] " Ignore file, ending with .swp and ~ " }}} " Undotree {{{ " Toggle undotree with F5 nmap <F5> :UndotreeToggle<CR> - if !exists('g:undotree_WindowLayout') - let g:undotree_WindowLayout = 2 - endif - - " e.g. using 'd' instead of 'days' to save some space. - if !exists('g:undotree_ShortIndicators') - let g:undotree_ShortIndicators = 1 - endif - - " if set, let undotree window get focus after being opened, otherwise - " focus will stay in current window. - if !exists('g:undotree_SetFocusWhenToggle') - let g:undotree_SetFocusWhenToggle = 1 - endif - - " tree node shape. - if !exists('g:undotree_TreeNodeShape') - let g:undotree_TreeNodeShape = '*' - endif - - if !exists('g:undotree_DiffCommand') - let g:undotree_DiffCommand = "diff" - endif + let g:undotree_WindowLayout = 2 + let g:undotree_ShortIndicators = 1 " e.g. using 'd' instead of 'days' to save some space. + let g:undotree_SetFocusWhenToggle = 1 " if set, let undotree window get focus after being opened, otherwise focus will stay in current window. + let g:undotree_TreeNodeShape = '*' + let g:undotree_DiffCommand = "diff" " }}} " Tabman {{{ let g:tabman_toggle = '<S-Tab>' - let g:tabman_side = 'right' -" }}} - -" Syntastic {{{ - set statusline+=%#warningmsg# - set statusline+=%{SyntasticStatuslineFlag()} - set statusline+=%* - - let g:syntastic_always_populate_loc_list=1 - let g:syntastic_auto_loc_list=1 - let g:syntastic_check_on_open=1 - let g:syntastic_check_on_wq=0 + let g:tabman_side = 'right' " }}} " Lightline {{{ @@ -305,7 +285,7 @@ \ } " }}} - " Function modification {{{ + " Function overrides {{{ " Most of the following functions are just modification of source: " Examples from doc file - https://github.com/itchyny/lightline.vim/blob/53176a0b75d6389d775d7bce0d494e58fc654f38/doc/lightline.txt#L583 " Tab source code - https://github.com/itchyny/lightline.vim/blob/master/autoload/lightline/tab.vim @@ -330,11 +310,11 @@ return strlen(&filetype) ? WebDevIconsGetFileTypeSymbol() . ' ' . &filetype : '' endfunction - " Adds the filetype icon in tabs and limit their width + " Adds the file type icon in tabs and limit their width function! LightlineTabFilename(n) abort let buflist = tabpagebuflist(a:n) - let winnr = tabpagewinnr(a:n) - let _ = (expand('#'.buflist[winnr - 1].':t') !=# '' ? expand('#'.buflist[winnr - 1].':t') : '[No Name]') + let winnr = tabpagewinnr(a:n) + let _ = (expand('#'.buflist[winnr - 1].':t') !=# '' ? expand('#'.buflist[winnr - 1].':t') : '[No Name]') " Limit the width of tabs, so they don't go out of the screen let tabNameLengthMax = &columns/((tabpagenr('$') > 0 ? tabpagenr('$') : 0) + 5) @@ -354,208 +334,34 @@ " }}} " }}} -" Ale settings {{{ - let g:ale_linters = { - \ 'cs': ['OmniSharp'], - \} - let b:ale_linters = ['cs'] -" }}} - -" vim-go {{{ - let g:go_highlight_extra_types = 1 - let g:go_highlight_space_tab_error = 1 - let g:go_highlight_trailing_whitespace_error = 1 - let g:go_highlight_operators = 1 - let g:go_highlight_functions = 1 - let g:go_highlight_function_parameters = 1 - let g:go_highlight_function_calls = 1 - let g:go_highlight_types = 1 - let g:go_highlight_fields = 1 - let g:go_highlight_variable_declarations = 1 - let g:go_highlight_variable_assignments = 1 +" asyncomplete {{{ + inoremap <expr> <Tab> pumvisible() ? "\<C-n>" : "\<Tab>" + inoremap <expr> <S-Tab> pumvisible() ? "\<C-p>" : "\<S-Tab>" + " inoremap <expr> <cr> pumvisible() ? asyncomplete#close_popup() : "\<cr>" + imap <c-space> <Plug>(asyncomplete_force_refresh) - autocmd Filetype go nmap <silent> <buffer> <F2> : GoRename<CR> - autocmd Filetype go nmap <silent> <buffer> <F5> : GoRun main/main.go<CR> -" }}} - -" OmniSharp settings {{{ - let g:syntastic_cs_checkers = ['code_checker'] + " allow modifying the completeopt variable, or it will + " be overridden all the time + let g:asyncomplete_auto_completeopt = 0 + + set completeopt=menuone,noinsert,noselect,preview - autocmd Filetype cs nmap <silent> <buffer> gd : OmniSharpGotoDefinition<CR> - autocmd Filetype cs nmap <silent> <buffer> gy : OmniSharpTypeLookup<CR> - autocmd Filetype cs nmap <silent> <buffer> gi : OmniSharpFindImplementations<CR> - autocmd Filetype cs nmap <silent> <buffer> gr : OmniSharpFindUsages<CR> - autocmd FileType cs nmap <silent> <buffer> <F2> : OmniSharpRename<CR> - autocmd FileType cs nmap <silent> <buffer> ff : OmniSharpCodeFormat<CR> - autocmd FileType cs nmap <silent> <buffer> fu : OmniSharpFixUsings<CR> + autocmd! CompleteDone * if pumvisible() == 0 | pclose | endif " }}} -" haskell-vim settings {{{ - let g:haskell_classic_highlighting = 1 - let g:haskell_enable_quantification = 1 " to enable highlighting of `forall` - let g:haskell_enable_recursivedo = 1 " to enable highlighting of `mdo` and `rec` - let g:haskell_enable_arrowsyntax = 1 " to enable highlighting of `proc` - let g:haskell_enable_pattern_synonyms = 1 " to enable highlighting of `pattern` - let g:haskell_enable_typeroles = 1 " to enable highlighting of type roles - let g:haskell_enable_static_pointers = 1 " to enable highlighting of `static` - let g:haskell_backpack = 1 " to enable highlighting of backpack keywords +" vim-lsp {{{ + let g:lsp_diagnostics_echo_cursor = 1 + let g:lsp_diagnostics_float_cursor = 1 + let g:lsp_diagnostics_signs_error = {'text': ' '} + let g:lsp_diagnostics_signs_warning = {'text': ' '} + let g:lsp_diagnostics_signs_hint = {'text': ' '} + let g:lsp_document_code_action_signs_hint = {'text': ' '} + + let g:lsp_semantic_enabled = 1 + let g:lsp_format_sync_timeout = 1000 + let g:lsp_document_did_save_delay = 1000 " }}} -" COC settings {{{ - " All of the following is the example configuration with some values modified - " https://github.com/neoclide/coc.nvim#example-vim-configuration - - " TextEdit might fail if hidden is not set. - set hidden - - " Some servers have issues with backup files, see #649. - set nobackup - set nowritebackup - - " Give more space for displaying messages. - set cmdheight=2 - - " Having longer update time (default is 4000 ms = 4 s) leads to noticeable - " delays and poor user experience. - set updatetime=300 - - " Don't 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 - - " Use tab for trigger completion with characters ahead and navigate. - " NOTE: Use command ':verbose imap <tab>' to make sure tab is not mapped by - " other plugin before putting this into your config. - inoremap <silent><expr> <TAB> - \ pumvisible() ? "\<C-n>" : - \ <SID>check_back_space() ? "\<TAB>" : - \ coc#refresh() - inoremap <expr><S-TAB> pumvisible() ? "\<C-p>" : "\<C-h>" - - function! s:check_back_space() abort - let col = col('.') - 1 - return !col || getline('.')[col - 1] =~# '\s' - endfunction - - " Use <c-space> to trigger completion. - if has('nvim') - inoremap <silent><expr> <c-space> coc#refresh() - else - inoremap <silent><expr> <c-@> coc#refresh() - endif - - " Use <cr> to confirm completion, `<C-g>u` means break undo chain at current - " position. Coc only does snippet and additional edit on confirm. - " <cr> could be remapped by other vim plugin, try `:verbose imap <CR>`. - if exists('*complete_info') - inoremap <expr> <cr> complete_info()["selected"] != "-1" ? "\<C-y>" : "\<C-g>u\<CR>" - else - inoremap <expr> <cr> pumvisible() ? "\<C-y>" : "\<C-g>u\<CR>" - endif - - " Use `[g` and `]g` to navigate diagnostics - " Use `:CocDiagnostics` to get all diagnostics of current buffer in location list. - nmap <silent> [g <Plug>(coc-diagnostic-prev) - nmap <silent> ]g <Plug>(coc-diagnostic-next) - - " GoTo code navigation. - nmap <silent> gd <Plug>(coc-definition) - nmap <silent> gy <Plug>(coc-type-definition) - nmap <silent> gi <Plug>(coc-implementation) - nmap <silent> gr <Plug>(coc-references) - - " Use K to show documentation in preview window. - nnoremap <silent> K :call <SID>show_documentation()<CR> - - function! s:show_documentation() - if (index(['vim','help'], &filetype) >= 0) - execute 'h '.expand('<cword>') - else - call CocAction('doHover') - endif - endfunction - - " Highlight the symbol and its references when holding the cursor. - autocmd CursorHold * silent call CocActionAsync('highlight') - - " Symbol renaming. - nmap <leader>rn <Plug>(coc-rename) - - " Formatting selected code. - xmap <leader>f <Plug>(coc-format-selected) - nmap <leader>f <Plug>(coc-format-selected) - - augroup mygroup - autocmd! - " Setup formatexpr specified filetype(s). - autocmd FileType typescript,json setl formatexpr=CocAction('formatSelected') - " Update signature help on jump placeholder. - autocmd User CocJumpPlaceholder call CocActionAsync('showSignatureHelp') - augroup end - - " Applying codeAction to the selected region. - " Example: `<leader>aap` for current paragraph - xmap <leader>a <Plug>(coc-codeaction-selected) - nmap <leader>a <Plug>(coc-codeaction-selected) - - " Remap keys for applying codeAction to the current buffer. - nmap <leader>ac <Plug>(coc-codeaction) - " Apply AutoFix to problem on the current line. - nmap <leader>qf <Plug>(coc-fix-current) - - " Map function and class text objects - " NOTE: Requires 'textDocument.documentSymbol' support from the language server. - xmap if <Plug>(coc-funcobj-i) - omap if <Plug>(coc-funcobj-i) - xmap af <Plug>(coc-funcobj-a) - omap af <Plug>(coc-funcobj-a) - xmap ic <Plug>(coc-classobj-i) - omap ic <Plug>(coc-classobj-i) - xmap ac <Plug>(coc-classobj-a) - omap ac <Plug>(coc-classobj-a) - - " Use CTRL-S for selections ranges. - " Requires 'textDocument/selectionRange' support of language server. - " nmap <silent> <C-s> <Plug>(coc-range-select) - " xmap <silent> <C-s> <Plug>(coc-range-select) - - " Add `:Format` command to format current buffer. - command! -nargs=0 Format :call CocAction('format') - - " Add `:Fold` command to fold current buffer. - command! -nargs=? Fold :call CocAction('fold', <f-args>) - - " Add `:OR` command for organize imports of the current buffer. - command! -nargs=0 OR :call CocAction('runCommand', 'editor.action.organizeImport') - - " Add (Neo)Vim's native statusline support. - " NOTE: Please see `:h coc-status` for integrations with external plugins that - " provide custom statusline: lightline.vim, vim-airline. - set statusline^=%{coc#status()}%{get(b:,'coc_current_function','')} - - " Mappings for CoCList - " Show all diagnostics. - nnoremap <silent><nowait> <space>a :<C-u>CocList diagnostics<cr> - " Manage extensions. - nnoremap <silent><nowait> <space>e :<C-u>CocList extensions<cr> - " Show commands. - nnoremap <silent><nowait> <space>c :<C-u>CocList commands<cr> - " Find symbol of current document. - nnoremap <silent><nowait> <space>o :<C-u>CocList outline<cr> - " Search workspace symbols. - nnoremap <silent><nowait> <space>s :<C-u>CocList -I symbols<cr> - " Do default action for next item. - nnoremap <silent><nowait> <space>j :<C-u>CocNext<CR> - " Do default action for previous item. - nnoremap <silent><nowait> <space>k :<C-u>CocPrev<CR> - " Resume latest coc list. - nnoremap <silent><nowait> <space>p :<C-u>CocListResume<CR> +" vim-lsp-settings {{{ + let g:lsp_settings_enable_suggestions = 0 " }}} |
