Cara Install Plugin di Neovim dengan Packer (packer.nvim)

Cara Install Plugin di Neovim dengan Packer – Neovim merupakan fork project dari Vim. Text editor ini cukup banyak digemari oleh banyak programmer. Neovim sendiri merupakan text editor berbasis terminal, sehingga sangat jarang sekali menggunakan mouse, cenderung lebih banyak menggunakan keyboard.

Packer, merupakan Plugin Manager yang cukup banyak digunakan, termasuk saya yang juga menggunakan packer sebagai plugin managernya.

Sebelum menggunakan packer.nvim saya menggunakan vimplug, vimplug ini selain digunakan di Neovim juga dapat digunakan di Vim, sedangkan packer.nvim sepertinya hanya dapat digunakan di Neovim saja.

Dalam hal konfigurasi Vim menggunakan vimscript sebagai bahasa yang digunakan untuk melakukan konfigurasi. Sedangkan Neovim, kita bisa menggunakan vimscript maupun bahasa lua.

Sebenarnya di Vim, kita juga dapat melakukan konfigurasi menggunakan bahasa lua, hanya saja menurut saya lebih ribet penggunaannya. Sedangkan di Neovim pengaturannya bisa lebih mudah dilakukan.

Di Vim, kita biasa meletakkan konfigurasinya di .vimrc yang berada di directory home. Sedangkan di Neovim, kita biasa meletakkan konfigurasinya di init.vim atau init.lua. Selain itu, di Neovim kita bisa mengatur konfigurasi setiap plugin dengan konfigurasi tersendiri, sehingga masing-masing plugin yang kita install tidak menjadi satu file konfigurasi seperti di Vim.

Struktur Direktori Neovim

Berikut adalah struktur direktori yang saya gunakan di Neovim saya. Struktur direktori ini saya ambil dari Takuya Matsuyama.

πŸ“‚ ~/.config/nvim
β”œβ”€β”€ πŸ“ after
β”‚  └── πŸ“ plugin
β”œβ”€β”€ πŸ“‚ lua
β”‚  └── πŸŒ‘ base.lua
β”œβ”€β”€ πŸ“ plugin
└── πŸ‡» init.lua

Keterangan:

  • after -> plugin : folder untuk konfigurasi berbagai macam plugin yang kita install.
  • lua : folder untuk konfigurasi base.lua, highlights.lua, maps.lua, dan plugins.lua.
  • plugin : folder untuk konfigurasi lspconfig.lua dan lspsaga.lua.
  • init.lua berguna untuk meload pengaturan yang ada di folder after -> plugin, lua dan plugin.

Basic Konfigurasi Neovim

Sebelum menginstall plugin dengan packer.nvim, ada baiknya kita melakukan konfigurasi awal terlebih dahulu.

Basic konfigurasi yang saya gunakan ini juga saya ambil dari Takuya Matsuyama. Berikut adalah konfigurasi awal yang saya pakai di Neovim saya.

Di folder lua, buat 4 file konfigurasi, diantaranya base.lua, highlights.lua, maps.lua dan plugins.lua.

  • base.lua
vim.cmd('autocmd!')

vim.scriptencoding = 'utf-8'
vim.opt.encoding = 'utf-8'
vim.opt.fileencoding = 'utf-8'
vim.opt.termguicolors = true

vim.wo.number = true

vim.opt.title = true
vim.opt.autoindent = true
vim.opt.hlsearch = true
vim.opt.backup = false
vim.opt.showcmd = true
vim.opt.cmdheight = 1
vim.opt.laststatus = 2
vim.opt.expandtab = true
vim.opt.scrolloff = 10
vim.opt.shell = 'fish'
vim.opt.backupskip = 'tmp/*,/private/tmp/*'
vim.opt.inccommand = 'split'
vim.opt.ignorecase = true
vim.opt.smarttab = true
vim.opt.breakindent = true
vim.opt.shiftwidth = 2
vim.opt.tabstop = 2
vim.opt.ai = true -- Auto indent
vim.opt.si = true -- Smart indent
vim.opt.wrap = false -- No wrap lines
vim.opt.backspace = 'start,eol,indent'
vim.opt.path:append { '**' } -- Finding files - seacrh down in subfolders
vim.opt.wildignore:append { '*/node_modules/*' }

-- Turn of paste mode when leaving insert
vim.api.nvim_create_autocmd("InsertLeave", {
  pattern = '*',
  command = "set nopaste"
})

-- Add asteris in block comments
vim.opt.formatoptions:append { 'r' }
  • highlights.lua
vim.opt.cursorline = true
vim.opt.termguicolors = true
vim.opt.winblend = 0
vim.opt.wildoptions = 'pum'
vim.opt.pumblend = 5
vim.opt.background = 'dark'
  • maps.lua
local keymap = vim.keymap

-- Do not yank with x
keymap.set('n', 'x', '"_x')

-- Increment/Decrement
keymap.set('n', '+', '<C-a>')
keymap.set('n', '-', '<C-x>')

-- Delete a word backwards
keymap.set('n','dw', 'vb"_d')

-- Select all
keymap.set('n', '<C-a>', 'gg<S-v>G')

-- New tab
keymap.set('n', 'te', ':tabedit<Return>', { silent = true })
-- Split window
keymap.set('n', 'ss', ':split<Return><C-w>w', { silent = true })
keymap.set('n', 'sv', ':vsplit<Return><C-w>w', { silent = true })
-- Move window
keymap.set('n', '<Space>', '<C-w>w')
keymap.set('', 's<left>', '<C-w>h')
keymap.set('', 's<up>', '<C-w>k')
keymap.set('', 's<down>', '<C-w>j')
keymap.set('', 's<right>', '<C-w>l')
keymap.set('', 'sh', '<C-w>h')
keymap.set('', 'sk', '<C-w>k')
keymap.set('', 'sj', '<C-w>j')
keymap.set('', 'sl', '<C-w>l')

-- Resize window
keymap.set('n', '<C-w><left>', '<C-w><')
keymap.set('n', '<C-w><right>', '<C-w>>')
keymap.set('n', '<C-w><up>', '<C-w>+')
keymap.set('n', '<C-w><down>', '<C-w>-')
  • plugins.lua

Pertama, install packer.nvim nya terlebih dahulu.

git clone --depth 1 https://github.com/wbthomason/packer.nvim\
 ~/.local/share/nvim/site/pack/packer/start/packer.nvim

Kemudian buat file plugins.lua.

local status, packer = pcall(require, 'packer')
if (not status) then return end

vim.cmd [[packadd packer.nvim]]
return require('packer').startup(function(use)
  -- Packer can manage itself
  use 'wbthomason/packer.nvim'
 
  -- Plugin lain di install disini

end)

Type :luafile% di Neovim kita, kemudian :PackerInstall atau :PackerSync untuk menginstall packer.nvim.

Selanjutnya di root directory neovim nya kita buat file init.lua untuk meload ke empat konfigurasi yang telah di buat diatas.

require('base')
require('maps')
require('highlights')
require('plugins')

Install Plugin di Neovim dengan Packer

Nah setelah basic konfigurasinya sudah dibuat, sekarang kita coba install plugin menggunakan packer.nvim.

Pada contoh ini, saya akan menginstall tema onedark.nvim, sobat bisa mencoba menggunakan tema lain yang soba sukai. Beberapa jenis tema untuk Neovim yang cukup populer diantaranya adalah tokyonight.nvim, cattpuccin, kanagawa.nvim, nightfox.nvim, RosΓ© Pine, dan juga onedark.nvim.

Saya memilih onedark.nvim karena sudah biasa menggunakannya di text editor yang saya gunakan. Tema onedark selain saya gunakan di Neovim juga saya terapkan di VS Code yang saya pakai.

Berikut adalah beberapa screenshot tema onedark.nvim.

Cara Install Plugin di Neovim dengan Packer - Install Tema Onedark Nvim
onedark.nvim
Cara Install Plugin di Neovim dengan Packer - Install Tema Onedark Nvim
onedark.nvim
Cara Install Plugin di Neovim dengan Packer - Install Tema Onedark Nvim
onedark.nvim
Cara Install Plugin di Neovim dengan Packer - Install Tema Onedark Nvim
onedark.nvim
Cara Install Plugin di Neovim dengan Packer - Install Tema Onedark Nvim
onedark.nvim
Cara Install Plugin di Neovim dengan Packer - Install Tema Onedark Nvim
onedark.nvim

Install onedark.nvim dengan packer.

-- Using Packer
use 'navarasu/onedark.nvim'

Contoh:

local status, packer = pcall(require, 'packer')
if (not status) then return end

vim.cmd [[packadd packer.nvim]]
return require('packer').startup(function(use)
  -- Packer can manage itself
  use 'wbthomason/packer.nvim'
 
  use 'navarasu/onedark.nvim'

end)

Simpan dan tutup terlebih dahulu dengan perintah :wq. Lalu buka kembali file plugins.lua tersebut, kemudian type :PackerSync atau :PackeInstall untuk menginstall tema onedark.nvim.

Setelah berhasil di install, buat file onedark.rc.lua di folder after -> plugin. Kurang lebih konfigurasinya seperti berikut ini.

local status, onedark = pcall(require, 'onedark')
if (not status) then return end

require('onedark').setup {
  style = 'cool', -- Choose one 'dark', 'darker', 'cool', 'deep', 'warm', 'warmer' and 'light'
  transparent = true,
  term_colors = true,
  ending_tildes = false,        -- Show the end-of-buffer tildes.
  cmp_itemkind_reverse = false, -- reverse item kind highlight in cmp menu

  code_style = {
    comments = 'italic',
    keywords = 'none',
    functions = 'none',
    strings = 'none',
    variables = 'none'
  },

  -- Plugins Config
  diagnostics = {
    darker = true,
    undercurl = true,
    background = true,
  },
}

-- Enable theme
require('onedark').load()

Simpan dan restart Neovim sobat, kemudian silahkan buka kembali. Kalau konfigurasinya benar, maka tema Neovim sobat sudah akan berganti menjadi onedark.nvim.

Mungkin cukup sekian tentang β€œcara install plugin di Neovim dengan packer.nvim” semoga bermanfaat ya sob, terima kasih.

Reza
Reza


Bertani, bikin konten, ngoding dan jualan hehe..

Leave a Reply

Your email address will not be published. Required fields are marked *