Last active
September 20, 2021 00:36
-
-
Save suryadana/60db69ff7fe2e027c04974b7b5e157fe to your computer and use it in GitHub Desktop.
My vim configure
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
" All system-wide defaults are set in $VIMRUNTIME/archlinux.vim (usually just | |
" /usr/share/vim/vimfiles/archlinux.vim) and sourced by the call to :runtime | |
" you can find below. If you wish to change any of those settings, you should | |
" do it in this file (/etc/vimrc), since archlinux.vim will be overwritten | |
" everytime an upgrade of the vim packages is performed. It is recommended to | |
" make changes after sourcing archlinux.vim since it alters the value of the | |
" 'compatible' option. | |
" This line should not be removed as it ensures that various options are | |
" properly set to work with the Vim-related packages. | |
runtime! archlinux.vim | |
" If you prefer the old-style vim functionalty, add 'runtime! vimrc_example.vim' | |
" Or better yet, read /usr/share/vim/vim80/vimrc_example.vim or the vim manual | |
" and configure vim to your own liking! | |
" do not load defaults if ~/.vimrc is missing | |
"let skip_defaults_vim=1 | |
call plug#begin('~/.config/nvim/plugged') | |
" Plugins will go here in the middle. | |
" Plug 'junegunn/fzf', { 'dir': '~/.fzf', 'do': './install --all' } | |
Plug '/usr/bin/fzf' | |
Plug 'junegunn/fzf.vim' | |
Plug 'rking/ag.vim' | |
Plug 'scrooloose/nerdtree', { 'on': 'NERDTreeToggle' } | |
Plug 'scrooloose/nerdcommenter' | |
" Diagram / Draw | |
Plug 'gyim/vim-boxdraw' | |
Plug 'vim-scripts/DrawIt' | |
" Screenshot code | |
Plug 'kristijanhusak/vim-carbon-now-sh' | |
Plug 'phanviet/vim-monokai-pro' | |
" Plug 'tpope/vim-fireplace', { 'for': 'clojure' } | |
" Plugin Vue JS | |
Plug 'posva/vim-vue' | |
" Plug 'w0rp/ale' | |
" Plugin options | |
Plug 'nsf/gocode', { 'tag': 'v.20150303', 'rtp': 'vim' } | |
" Plugin outside ~/.vim/plugged with post-update hook | |
" Plug 'junegunn/fzf', { 'dir': '~/.fzf', 'do': 'yes \| ./install' } | |
" Plugin vimux | |
Plug 'benmills/vimux' | |
" Plugin vimproc | |
Plug 'Shougo/vimproc.vim', {'do' : 'make'} | |
" Plugin Vim Airline | |
Plug 'vim-airline/vim-airline' | |
" Plugin Base16 Vim | |
Plug 'chriskempson/base16-vim' | |
" Plugin Typescript | |
Plug 'leafgarland/typescript-vim' | |
" Plugin Editorconfig | |
Plug 'editorconfig/editorconfig-vim' | |
Plug 'burnettk/vim-angular' | |
Plug 'pangloss/vim-javascript' | |
Plug 'Quramy/tsuquyomi' | |
Plug 'airblade/vim-gitgutter' | |
Plug 'mhinz/vim-signify' | |
Plug 'terryma/vim-multiple-cursors' | |
Plug 'alvan/vim-closetag' | |
" Plug 'Valloric/YouCompleteMe' | |
Plug 'neoclide/coc.nvim', {'branch': 'release'} | |
Plug 'moll/vim-node' | |
" Plug 'python-mode/python-mode', { 'branch': 'develop' } | |
" Plugin conflicted | |
Plug 'tpope/vim-fugitive' | |
Plug 'christoomey/vim-conflicted' | |
" Plugin multiple cursor | |
Plug 'terryma/vim-multiple-cursors' | |
" Plugin blamer for look line code change by | |
Plug 'APZelos/blamer.nvim' | |
" Plugin for flake8 | |
Plug 'andviro/flake8-vim' | |
call plug#end() | |
nnoremap <C-p> :FZF<CR> | |
vnoremap <F5> :CarbonNowSh<CR> | |
let mapleader = "\<Space>" | |
" noremap <leader>g :rightbelow vertical YcmCompleter GoTo<CR> | |
" noremap <leader>i :TsuImport<CR> | |
" noremap <leader>f :TsuQuickFix<CR> | |
noremap <leader>w <C-w> | |
noremap <leader>wg <C-O> | |
set clipboard=unnamedplus | |
syntax enable | |
set termguicolors | |
colorscheme monokai_pro | |
set number | |
set wrap | |
set splitright | |
autocmd vimenter * NERDTree | |
autocmd StdinReadPre * let s:std_in=1 | |
autocmd vimenter * if argc() == 0 && !exists("s:std_in") | NERDTree | endif | |
autocmd FileType vue syntax sync fromstart | |
autocmd BufRead,BufNewFile *.vue setlocal filetype=vue.html.javascript.css | |
" indentation | |
set expandtab " use spaces instead of tabs | |
set autoindent " autoindent based on line above, works most of the time | |
set smartindent " smarter indent for C-like languages | |
set shiftwidth=2 " when reading, tabs are 4 spaces | |
set softtabstop=2 " in insert mode, tabs are 4 spaces | |
autocmd FileType python nnoremap <LocalLeader>= :0,$!yapf<CR> | |
autocmd FileType python nnoremap <LocalLeader>i :!isort %<CR><CR> | |
" NERDTreeCommenter | |
filetype plugin on | |
" set omnifunc=syntaxcomplete#Complete | |
" Auto trim Whitespace | |
" autocmd BufWritePre * :%s/\s\+$//e | |
" Enable deoplate | |
let g:deoplete#enable_at_startup = 1 | |
" Map Tab button to toggle nerdtree | |
noremap <Tab> :NERDTreeToggle<CR> | |
let NERDSpaceDelims=1 | |
" filenames like *.xml, *.html, *.xhtml, ... | |
" These are the file extensions where this plugin is enabled. | |
" | |
let g:closetag_filenames = '*.html,*.xhtml,*.phtml' | |
" filenames like *.xml, *.xhtml, ... | |
" This will make the list of non-closing tags self-closing in the specified files. | |
" | |
let g:closetag_xhtml_filenames = '*.xhtml,*.jsx' | |
" filetypes like xml, html, xhtml, ... | |
" These are the file types where this plugin is enabled. | |
" | |
let g:closetag_filetypes = 'html,xhtml,phtml' | |
" filetypes like xml, xhtml, ... | |
" This will make the list of non-closing tags self-closing in the specified files. | |
" | |
let g:closetag_xhtml_filetypes = 'xhtml,jsx' | |
" integer value [0|1] | |
" This will make the list of non-closing tags case-sensitive (e.g. `<Link>` will be closed while `<link>` won't.) | |
" | |
let g:closetag_emptyTags_caseSensitive = 1 | |
" Shortcut for closing tags, default is '>' | |
" | |
let g:closetag_shortcut = '>' | |
" Pymode configure | |
" | |
let g:pymode_virtualenv_path = $VIRTUAL_ENV | |
let g:pymode_python = 'python3' | |
let g:pymode_folding = 1 | |
" COC CONFIG | |
" if hidden is not set, TextEdit might fail. | |
set hidden | |
" Some servers have issues with backup files, see #649 | |
set nobackup | |
set nowritebackup | |
" Better display for messages | |
set cmdheight=2 | |
" You will have bad experience for diagnostic messages when it's default 4000. | |
set updatetime=300 | |
" don't give |ins-completion-menu| messages. | |
set shortmess+=c | |
" always show signcolumns | |
set signcolumn=yes | |
" Use tab for trigger completion with characters ahead and navigate. | |
" Use command ':verbose imap <tab>' to make sure tab is not mapped by other plugin. | |
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. | |
inoremap <silent><expr> <c-space> coc#refresh() | |
" Use <cr> to confirm completion, `<C-g>u` means break undo chain at current position. | |
" Coc only does snippet and additional edit on confirm. | |
inoremap <expr> <cr> pumvisible() ? "\<C-y>" : "\<C-g>u\<CR>" | |
" Or use `complete_info` if your vim support it, like: | |
" inoremap <expr> <cr> complete_info()["selected"] != "-1" ? "\<C-y>" : "\<C-g>u\<CR>" | |
" Use `[g` and `]g` to navigate diagnostics | |
nmap <silent> [g <Plug>(coc-diagnostic-prev) | |
nmap <silent> ]g <Plug>(coc-diagnostic-next) | |
" Remap keys for gotos | |
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 symbol under cursor on CursorHold | |
autocmd CursorHold * silent call CocActionAsync('highlight') | |
" Remap for rename current word | |
nmap <leader>rn <Plug>(coc-rename) | |
" Remap for format selected region | |
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 | |
" Remap for do codeAction of selected region, ex: `<leader>aap` for current paragraph | |
xmap <leader>a <Plug>(coc-codeaction-selected) | |
nmap <leader>a <Plug>(coc-codeaction-selected) | |
" Remap for do codeAction of current line | |
nmap <leader>ac <Plug>(coc-codeaction) | |
" Fix autofix problem of current line | |
nmap <leader>qf <Plug>(coc-fix-current) | |
" Create mappings for function text object, requires document symbols feature of languageserver. | |
xmap if <Plug>(coc-funcobj-i) | |
xmap af <Plug>(coc-funcobj-a) | |
omap if <Plug>(coc-funcobj-i) | |
omap af <Plug>(coc-funcobj-a) | |
" Use <C-d> for select selections ranges, needs server support, like: coc-tsserver, coc-python | |
nmap <silent> <C-d> <Plug>(coc-range-select) | |
xmap <silent> <C-d> <Plug>(coc-range-select) | |
" Use `:Format` to format current buffer | |
command! -nargs=0 Format :call CocAction('format') | |
" Use `:Fold` to fold current buffer | |
command! -nargs=? Fold :call CocAction('fold', <f-args>) | |
" use `:OR` for organize import of current buffer | |
command! -nargs=0 OR :call CocAction('runCommand', 'editor.action.organizeImport') | |
" Add status line support, for integration with other plugin, checkout `:h coc-status` | |
set statusline^=%{coc#status()}%{get(b:,'coc_current_function','')} | |
" Using CocList | |
" Show all diagnostics | |
nnoremap <silent> <space>a :<C-u>CocList diagnostics<cr> | |
" Manage extensions | |
nnoremap <silent> <space>e :<C-u>CocList extensions<cr> | |
" Show commands | |
nnoremap <silent> <space>c :<C-u>CocList commands<cr> | |
" Find symbol of current document | |
nnoremap <silent> <space>o :<C-u>CocList outline<cr> | |
" Search workspace symbols | |
nnoremap <silent> <space>s :<C-u>CocList -I symbols<cr> | |
" Do default action for next item. | |
nnoremap <silent> <space>j :<C-u>CocNext<CR> | |
" Do default action for previous item. | |
nnoremap <silent> <space>k :<C-u>CocPrev<CR> | |
" Resume latest coc list | |
nnoremap <silent> <space>p :<C-u>CocListResume<CR> | |
" show chunk diff at current position | |
nmap <leader>gs <Plug>(coc-git-chunkinfo) | |
" show commit contains current position | |
nmap <leader>gc <Plug>(coc-git-commit) | |
" create text object for git chunks | |
omap ig <Plug>(coc-git-chunk-inner) | |
xmap ig <Plug>(coc-git-chunk-inner) | |
omap ag <Plug>(coc-git-chunk-outer) | |
xmap ag <Plug>(coc-git-chunk-outer) | |
let g:blamer_enabled = 1 | |
" Flake8 | |
let g:PyFlakeOnWrite = 0 | |
let g:PyFlakeCheckers = 'pep8,mccabe,frosted' | |
let g:PyFlakeDefaultComplexity=10 | |
let g:PyFlakeAggressive = 0 | |
let g:PyFlakeRangeCommand = 'Q' |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment