inoremap <silent> jj <ESC> set colorcolumn=88,100,120 set number set clipboard+=unnamedplus set shiftwidth=2 set mouse=a map <ScrollWheelUp> <C-Y> map <ScrollWheelDown> <C-E> autocmd WinEnter * if &buftype ==# 'terminal' | startinsert | endif noremap <A-w> <C-w>w inoremap <A-w> <Esc><C-w>w tnoremap <A-w> <C-\><C-n><C-w>w tnoremap <A-\> <C-\><C-n> filetype plugin indent on syntax enable " plugins call plug#begin('~/.vim/plugged') "Plug 'itchyny/lightline.vim' Plug 'glepnir/galaxyline.nvim' , {'branch': 'main'} Plug 'kyazdani42/nvim-web-devicons' Plug 'sainnhe/sonokai' Plug 'prabirshrestha/async.vim' Plug 'neoclide/coc.nvim', { 'merged': 0, 'branch': 'release' } Plug 'tjdevries/coc-zsh' Plug 'nvim-treesitter/nvim-treesitter', {'do': ':TSUpdate'} Plug 'kien/rainbow_parentheses.vim' Plug 'Yggdroot/indentLine' Plug 'rhysd/committia.vim' Plug 'airblade/vim-gitgutter' Plug 'psf/black', { 'branch': 'stable' } " Plug 'yuki-ycino/fzf-preview.vim', { 'branch': 'release', 'do': ':UpdateRemotePlugins' } Plug 'nvim-lua/popup.nvim' Plug 'nvim-lua/plenary.nvim' Plug 'nvim-telescope/telescope.nvim' Plug 'lambdalisue/fern.vim' call plug#end() "Black autocmd BufWritePre *.py execute ':Black' let g:black_linelength=100 set noshowmode lua require('plugins.galaxyline') " let g:lightline = { " \ 'colorscheme': 'sonokai', " \ 'active': { " \ 'left': [[ 'mode', 'paste' ], [ 'gitbranch', 'readonly', 'filename', 'modified' ]], " \ 'right': [[ 'lineinfo' ], [ 'fileencoding', 'filetype', ]], " \ }, " \ 'component': {'charvaluehex': '0x%B'}, " \ 'component_function': {'gitbranch': 'FugitiveHead'}, " \ } " Colorscheme " important!! set termguicolors " the configuration options should be placed before `colorscheme sonokai` let g:sonokai_style = 'andromeda' let g:sonokai_enable_italic = 1 let g:sonokai_enable_italic = 1 colorscheme sonokai " tab setting set showtabline=1 nnoremap [TABCMD] <nop> nmap <leader>t [TABCMD] nnoremap <silent> [TABCMD]f :<c-u>tabfirst<cr> nnoremap <silent> [TABCMD]l :<c-u>tablast<cr> nnoremap <silent> [TABCMD]n :<c-u>tabnext<cr> nnoremap <silent> [TABCMD]N :<c-u>tabNext<cr> nnoremap <silent> [TABCMD]p :<c-u>tabprevious<cr> nnoremap <silent> [TABCMD]e :<c-u>tabedit<cr> nnoremap <silent> [TABCMD]w :<c-u>tabclose<cr> nnoremap <silent> [TABCMD]o :<c-u>tabonly<cr> nnoremap <silent> [TABCMD]c :<c-u>tabs<cr> nnoremap <silent> [TABCMD]s :<c-u>tabnew<cr> nnoremap <silent> [TABCMD]v :<c-u>tabvew<cr> " Coc Settings " Make <CR> auto-select the first completion item and notify coc.nvim to " format on enter, <cr> could be remapped by other vim plugin inoremap <silent><expr> <cr> pumvisible() ? coc#_select_confirm() \: "\<C-g>u\<CR>\<c-r>=coc#on_enter()\<CR>" " 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>') elseif (coc#rpc#ready()) call CocActionAsync('doHover') else execute '!' . &keywordprg . " " . expand('<cword>') 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>fo <Plug>(coc-format-selected) nmap <leader>fo <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) " Remap <C-f> and <C-b> for scroll float windows/popups. " Note coc#float#scroll works on neovim >= 0.4.0 or vim >= 8.2.0750 nnoremap <nowait><expr> <C-f> coc#float#has_scroll() ? coc#float#scroll(1) : "\<C-f>" nnoremap <nowait><expr> <C-b> coc#float#has_scroll() ? coc#float#scroll(0) : "\<C-b>" inoremap <nowait><expr> <C-f> coc#float#has_scroll() ? "\<c-r>=coc#float#scroll(1)\<cr>" : "\<Right>" inoremap <nowait><expr> <C-b> coc#float#has_scroll() ? "\<c-r>=coc#float#scroll(0)\<cr>" : "\<Left>" " NeoVim-only mapping for visual mode scroll " Useful on signatureHelp after jump placeholder of snippet expansion if has('nvim') vnoremap <nowait><expr> <C-f> coc#float#has_scroll() ? coc#float#nvim_scroll(1, 1) : "\<C-f>" vnoremap <nowait><expr> <C-b> coc#float#has_scroll() ? coc#float#nvim_scroll(0, 1) : "\<C-b>" endif " 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> if has('nvim') " telescope.nvim nnoremap <leader>ff <cmd>lua require('telescope.builtin').find_files()<cr> nnoremap <leader>fg <cmd>lua require('telescope.builtin').live_grep()<cr> nnoremap <leader>fb <cmd>lua require('telescope.builtin').buffers()<cr> nnoremap <leader>fh <cmd>lua require('telescope.builtin').help_tags()<cr> lua require('plugins') endif " committia let g:committia_hooks = {} function! g:committia_hooks.edit_open(info) " Additional settings setlocal spell " If no commit message, start with insert mode if a:info.vcs ==# 'git' && getline(1) ==# '' startinsert endif " Scroll the diff window from insert mode " Map <C-n> and <C-p> imap <buffer><C-n> <Plug>(committia-scroll-diff-down-half) imap <buffer><C-p> <Plug>(committia-scroll-diff-up-half) endfunction highlight Normal ctermbg=NONE guibg=NONE highlight NonText ctermbg=NONE guibg=NONE highlight LineNr ctermbg=NONE guibg=NONE highlight SpecialKey ctermbg=NONE guibg=NONE highlight EndOfBuffer ctermbg=NONE guibg=NONE autocmd Filetype json setl conceallevel=0 " It doesn't works "let g:indentLine_enabled = 0