Panduan Linux

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!

#Vim #Tutorial