lua << EOF require('nvim-treesitter.configs').setup({ highlight = { enable = true, }, indent = { enable = true, }, }) require('lualine').setup({ options = { theme = 'gruvbox', }, }) require('hop').setup({}) require('nvim-autopairs').setup({}) require('fzf-lua').setup({ winopts = { width = 0.80, height = 0.78, row = 0.45, col = 0.48, }, }) -- LSP-config require('lspconfig').eslint.setup({}) require('lspconfig').jsonls.setup({}) require('lspconfig').html.setup({}) require('lspconfig').yamlls.setup({}) require('lspconfig').tsserver.setup({}) require('lspconfig').phpactor.setup({}) require('lspconfig').stylelint_lsp.setup({ filetypes = { 'css', 'sass', 'scss' } }) require('lspconfig').cssls.setup({ filetypes = { 'css', 'sass', 'scss' }, settings = { css = { validate = false, }, scss = { validate = false, }, sass = { validate = false, }, }, }) EOF " fugitive nnoremap gs :G20+ nnoremap gd :Gvdiff20+ nnoremap gc :Git commit20+ nnoremap gw :Gwrite20+ nnoremap gb :Git blame20+ " fzf nnoremap , lua require('fzf-lua').files() nnoremap ` lua require('fzf-lua').files({ cwd = '~/' }) nnoremap . lua require('fzf-lua').buffers() nnoremap l lua require('fzf-lua').lines() nnoremap a lua require('fzf-lua').grep_project() nnoremap ; lua require('fzf-lua').command_history() nnoremap / lua require('fzf-lua').search_history() nnoremap c lua require('fzf-lua').git_commits() nnoremap b lua require('fzf-lua').git_branches() " LSP nnoremap f lua vim.lsp.buf.formatting() " Hop nnoremap j lua require('hop').hint_words() " Floaterm let g:floaterm_keymap_toggle = 't' let g:floaterm_width = 0.8 let g:floaterm_height = 0.8 let g:floaterm_autoclose = 1 let g:floaterm_opener = 'edit' let g:floaterm_borderchars = '─│─│╭╮╯╰' let g:floaterm_title = '' hi FloatermBorder guibg='#282828' guifg='#fbf1c7' nnoremap - :FloatermNew nnn nnoremap g :FloatermNew lazygit " COC.vim " TODO LSP-alternatives " nmap c (coc-rename) " nmap e (coc-diagnostic-next) " xmap f (coc-format-selected) " nmap f (coc-format-selected) inoremap \ pumvisible() ? coc#_select_confirm() : \ coc#expandableOrJumpable() ? "\=coc#rpc#request('doKeymap', ['snippets-expand-jump',''])\" : \ check_back_space() ? "\" : \ coc#refresh() function! s:check_back_space() abort let col = col('.') - 1 return !col || getline('.')[col - 1] =~# '\s' endfunction let g:coc_snippet_next = '' " Use to confirm completion, `u` means break undo chain at current " position. Coc only does snippet and additional edit on confirm. " could be remapped by other vim plugin, try `:verbose imap `. if exists('*complete_info') inoremap complete_info()["selected"] != "-1" ? "\" : "\u\" else inoremap pumvisible() ? "\" : "\u\" endif " GoTo code navigation. nmap gd (coc-definition) nmap gy (coc-type-definition) nmap gi (coc-implementation) nmap gr (coc-references) " Use K to show documentation in preview window. nnoremap K :call show_documentation() function! s:show_documentation() if (index(['vim','help'], &filetype) >= 0) execute 'h '.expand('') else call CocAction('doHover') endif endfunction " Selection ranges nmap (coc-range-select) xmap (coc-range-select) " Map function and class text objects xmap if (coc-funcobj-i) omap if (coc-funcobj-i) xmap af (coc-funcobj-a) omap af (coc-funcobj-a) xmap ic (coc-classobj-i) omap ic (coc-classobj-i) xmap ac (coc-classobj-a) omap ac (coc-classobj-a) " Add `:Format` command to format current buffer. command! -nargs=0 Format :call CocAction('format') " coc-yank, replaces yankstack, use alt + p nnoremap π :CocList -A --normal yank " coc multiple cursors (very helpful for when in CocSearch) hi CocCursorRange ctermbg=139 ctermfg=234 nmap (coc-cursors-word)* xmap y/\V=escape(@",'/\')gN(coc-cursors-range)gn