Cara Install Plugin di Neovim Menggunakan VimPlug

Cara Install Plugin di Neovim ~ di artikel sebelumnya, saya sudah share bagaimana caranya install plugin di Vim dengan VimPlug.

Sebenarnya, menginstall plugin di Vim ataupun di Neovim tidak jauh berbeda, hanya ada sedikit perbedaan. Tapi, ngga apa-apa saya tulisa saja disini, hehe.

Install Neovim

Jika sobat belum memiliki Neovim, bisa install terlebih dahulu dengan cara berikut:

  • Debian
sudo apt-get install neovim
  • Fedora
sudo dnf install -y neovim python3-neovim
  • Flatpak
flatpak install flathub io.neovim.nvim
flatpak run io.neovim.nvim

Setelah itu, coba cek apakah sudah berhasil di install, dengan cara ketikkan nvim di terminal.

$ nvim

Cara Install VimPlug di Neovim

Selanjutnya, kita install VimPlug yang merupakan vim plugin manager. Dengan VimPlug, nanti kita bisa menginstall berbagai plugin dengan mudah.

Jalankan perintah berikut di terminal:

  • Unix / Linux
sh -c 'curl -fLo "${XDG_DATA_HOME:-$HOME/.local/share}"/nvim/site/autoload/plug.vim --create-dirs \
       https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim'
  • Flatpak
curl -fLo ~/.var/app/io.neovim.nvim/data/nvim/site/autoload/plug.vim --create-dirs \
    https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
  • Powershell (Windows)
iwr -useb https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim |`
    ni "$(@($env:XDG_DATA_HOME, $env:LOCALAPPDATA)[$null -eq $env:XDG_DATA_HOME])/nvim-data/site/autoload/plug.vim" -Force

Sekarang kita coba install beberapa plugin menggunakan VimPlug.

Cara Install Plugin di Neovim dengan VimPlug

Setelah VimPlug sudah berhasil di install, sekarang kita buat file init.vim di directory ~/.config/nvim/init.vim, file ini sebagai tempat konfigurasi. Jika belum ada, silahkan dibuat manual.

$ cd ~/.config

-- buat folder nvim --
$ mkdir nvim

-- buat file init.vim --
$ touch init.vim

Jika di Vim kita menyimpan file konfigurasi di .vimrc dan diletakkan di directory home, sedangkan di Neovim kita meletakkan file konfigurasinya di tempat yang berbeda dengan nama file init.vim.

Meskipun berbeda tempat dan nama, namun script yang digunakan sama saja. Hanya berbeda tempat dan nama saja.

Buka file init.vim dengan Neovim.

$ nvim init.vim

Kemudian paste kode berikut.

call plug#begin(stdpath('data') . '/plugged')

"// plugin disini 

call plug#end()

Sekarang kita coba install plugin untuk tema Neovim dengan onedark.vim. Daftar plugin untuk Vim ataupun Neovim dapat sobat cari di vimawesome, ada banyak plugin yang bisa kita pakai secara gratis disana.

call plug#begin(stdpath('data') . '/plugged')

" Themes 
Plug 'joshdick/onedark.vim'

call plug#end()

Setelah itu, simpan dan exit terlebih dahulu, dengan perintah :wq.

Kemudian buka lagi, dan ketikkan perintah :PlugInstall untuk menginstall plugin tema onedark.vim.

Agar tema yang di install bisa aktif, kita harus mengkonfigurasinya terlebih dahulu.

call plug#begin(stdpath('data') . '/plugged')

" Themes 
Plug 'joshdick/onedark.vim'

call plug#end()

" Konfigurasi Tema 
set colorscheme onedark

Kemudian simpan dan tutup terlebih dahulu dengan perintah :wq, kemudian buka lagi Neovim sobat dan lihat perubahannya.

Konfigurasi Neovim yang Saya Gunakan

Konfigurasi Neovim yang saya gunakan ini saya dapatkan dari berbagai tutorial, sehingga banyak yang saya tidak paham maksudnya hehe.

Namun sobat boleh mencoba menggunakannya, kalau ada error, bisa langsung cari penyelesaiannya di Google atau StackOverflow, jangan ke saya karena saya sendiri ngga paham.

" Install Plugin
call plug#begin(stdpath('data'). 'plugged')

" Vim Airline
Plug 'vim-airline/vim-airline'
Plug 'vim-airline/vim-airline-themes'

" Powerline
Plug 'powerline/powerline'

" Tmux Line
Plug 'edkolev/tmuxline.vim'

" Themes Plugin 
Plug 'joshdick/onedark.vim'
Plug 'dracula/vim'

" Icon For NerdTree
Plug 'ryanoasis/vim-devicons'

"Plug 'SirVer/ultisnips'
"Plug 'honza/vim-snippets'

" NerdTree
Plug 'scrooloose/nerdtree'
Plug 'preservim/nerdcommenter'
Plug 'mhinz/vim-startify'

" Auto Complete 
Plug 'neoclide/coc.nvim', {'branch': 'release'}
Plug 'neoclide/coc.nvim', {'branch': 'master', 'do': 'yarn install --frozen-lockfile'}

" HTML 5
Plug 'othree/html5.vim'
Plug 'pangloss/vim-javascript'
Plug 'evanleck/vim-svelte', {'branch': 'main'}
Plug 'mattn/emmet-vim'
Plug 'alvan/vim-closetag'

" C/C++
Plug 'vim-scripts/c.vim'

" FZF File Finder
Plug 'junegunn/fzf', { 'do': { -> fzf#install() } }
Plug 'junegunn/fzf.vim'

call plug#end()

" General Setting
:set encoding=UTF-8
:set number
:set relativenumber
:set nowrap

" Setting Tab
:set tabstop=3
:set shiftwidth=3
:set softtabstop=3
:set expandtab

" Jump Next and Previous Tab
nnoremap <C-Left> :tabprevious<CR>
nnoremap <C-Right> :tabnext<CR>

" Setting Cursorline
:set cursorline
hi Cursorline term=bold cterm=bold guibg=Grey40


" Setting Themes
syntax on 
colorscheme onedark
hi Normal guibg=NONE ctermbg=NONE

" Vim airline / airline themes 
let g:airline#extensions#tabline#enabled = 1
let g:airline#extensions#tabline#left_sep = ' '
let g:airline#extensions#tabline#left_alt_sep = '>>'
let g:airline#extensions#tabline#formatter = 'unique_tail'
let g:airline_section_z = '%l:%c'
let g:airline_theme = 'supernova'

" Powerline Setting
let g:airline_left_sep = "\ue0b0"
let g:airline_right_sep = "\ue0b2"
let g:airline_left_alt_sep = "\ue0b0"
let g:airline_right_alt_sep = "\ue0b2"

" CoC settings
set nobackup
set nowritebackup
set cmdheight=1
set updatetime=300
set shortmess+=c
if has("nvim-0.5.0") || has("patch-8.1.1564")
  set signcolumn=number
else
  set signcolumn=yes
endif
inoremap <silent><expr> <TAB>
      \ pumvisible() ? "\<C-n>" :
      \ CheckBackspace() ? "\<TAB>" :
      \ coc#refresh()
inoremap <expr><S-TAB> pumvisible() ? "\<C-p>" : "\<C-h>"
function! CheckBackspace() abort
  let col = col('.') - 1
  return !col || getline('.')[col - 1]  =~# '\s'
endfunction
if has('nvim')
  inoremap <silent><expr> <c-space> coc#refresh()
else
  inoremap <silent><expr> <[email protected]> coc#refresh()
endif
inoremap <silent><expr> <cr> pumvisible() ? coc#_select_confirm()
                              \: "\<C-g>u\<CR>\<c-r>=coc#on_enter()\<CR>"
nmap <silent> [g <Plug>(coc-diagnostic-prev)
nmap <silent> ]g <Plug>(coc-diagnostic-next)
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)
nnoremap <silent> K :call ShowDocumentation()<CR>
function! ShowDocumentation()
  if CocAction('hasProvider', 'hover')
    call CocActionAsync('doHover')
  else
    call feedkeys('K', 'in')
  endif
endfunction
autocmd CursorHold * silent call CocActionAsync('highlight')

" C/C++ Configuration
let g:C_UseTool_cmake ='yes'
let g:C_UseTool_doxygen ='yes'

" End Setting

Konfigurasinya agak lebih panjang ketimbang di Vim yang saya gunakan, karena saya menggunakan Neovim ini untuk belajar web programming.

Sekian tuturial cara install plugin di Neovim menggunakan VimPlug, semoga bermanfaat.

~ Jangan mencintai sesuatu terlalu banyak ✨ ~

Leave a Comment