Auto-completion di Vim dengan Coc.nvim
Halo, para Vim enthusiast! Kalian pasti udah nggak asing lagi sama yang namanya auto-completion, kan? Fitur ini bikin coding jadi lebih cepet dan nggak ribet. Nah, buat kalian yang pake Vim, ada nih plugin keren namanya Coc.nvim yang bisa bikin auto-completion di Vim jadi lebih gampang dan powerful. Yuk, kita bahas gimana cara setup dan pake Coc.nvim biar coding kalian makin lancar!
Apa itu Coc.nvim?
Coc.nvim (Conquer of Completion) adalah plugin buat Vim dan Neovim yang nyediain fitur Language Server Protocol (LSP) dan auto-completion. Coc.nvim nggak cuma buat auto-completion aja, tapi juga nyediain fitur-fitur keren lain seperti linting, formatting, dan code actions. Coc.nvim pake Node.js, jadi pastiin Node.js udah terinstall di komputermu ya.
Instalasi Coc.nvim
Pertama-tama, pastiin Vim atau Neovim kalian udah support plugin. Kalo pake Vim, versinya minimal 8.1. Kalo pake Neovim, versinya minimal 0.3.1. Kalo udah, install Coc.nvim pake plugin manager favorit kalian. Misalnya, kalo pake Vim-plug, tambahin ini di file konfigurasi Vim kalian (~/.vimrc
atau ~/.config/nvim/init.vim
):
Plug 'neoclide/coc.nvim', {'branch': 'release'}
Terus, jalankan :PlugInstall
di Vim buat nginstall pluginnya.
Setup Coc.nvim
Setelah Coc.nvim terinstall, kalian perlu setup buat dapetin fitur auto-completion yang optimal. Coc.nvim butuh beberapa konfigurasi tambahan di file konfigurasi Vim kalian. Nih, contoh konfigurasi sederhana:
" Coc.nvim configuration
set hidden
set updatetime=300
set shortmess+=c
set signcolumn=yes
" Use tab for trigger completion with characters ahead and navigate.
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.
inoremap <expr> <cr> pumvisible() ? "\<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)
" 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
Konfigurasi di atas bakal bikin Coc.nvim lebih gampang dipake. Misalnya, pake Tab
buat navigate completion, Ctrl+Space
buat trigger completion, dan Enter
buat confirm completion. Kalian juga bisa pake gd
buat liat definisi kode, gy
buat liat tipe definisi, dan lain-lain.
Install Language Server
Coc.nvim butuh language server buat nyediain fitur auto-completion dan LSP. Buat install language server, kalian bisa pake perintah :CocInstall
di Vim. Misalnya, buat install language server buat JavaScript, ketik :CocInstall coc-tsserver
. Atau buat Python, ketik :CocInstall coc-pyright
. Coc.nvim punya banyak extension buat berbagai bahasa pemrograman, jadi kalian bisa pilih sesuai kebutuhan.
Pake Auto-completion
Setelah semua setup, kalian bisa langsung pake fitur auto-completion di Vim. Coba buka file kode, terus mulai ngetik. Kalo Coc.nvim udah aktif, kalian bakal liat suggestions buat melengkapi kode yang kalian tulis. Pake Tab
buat pilih suggestion yang diinginkan, dan Enter
buat confirm.
Customize Coc.nvim
Kalian juga bisa customize Coc.nvim sesuai kebutuhan. Misalnya, buat ganti theme atau nambahin fitur-fitur tertentu. Coc.nvim punya dokumentasi yang lengkap, jadi kalian bisa eksplor lebih lanjut buat dapetin pengalaman coding yang lebih optimal.
Nah, gimana? Gampang banget kan setup auto-completion di Vim pake Coc.nvim? Dengan Coc.nvim, coding di Vim jadi lebih efisien dan menyenangkan. Selamat mencoba!