Neovim adalah teks editor berbasis vim. Dari segi penggunaan, tidak ada perbedaan antara Vim dan Neovim. Neovim merupakan proyek kelanjutan dan pengembangan vim dengan tujuan peningkatan dan pengoptimalan yang berfokus pada ekstensibilitas dan kegunaan, seperti API, plugin, bahasa dan pengalaman pengguna.
Instalasi
Proses instalasi keduanya sama, baik vim atau neovim. Kita dapat download atau install manual dari file zip / executable (.exe) atau melalui command line dengan package manager.
Namun, meskipun cara instalasi sama, letak file konfigurasi keduanya berbeda, dan tentu nama package / aplikasi saat akan melakukan instalasi juga berbeda.
Tidak membahas keduanya secara rinci, pembahasan mengenai vim tidak diperdalam, kita hanya akan membahas Neovim, dan kita masuk ke bagian penginstalan.
Seperti yang disebutkan sebelumnya, penginstalan Neovim dapat kita lakukan dengan beberapa cara, baik mendownloadnya di halaman Installing-Neovim atau melalui command line dengan package manager seperti Chocolatey dan Scoop.
Untuk penginstalan melalui command line dapat menggunakan printah sesuai package manager yang digunakan di bawah. Silahkan pilih salah satu sesuai package manager yang ingin digunakan.
Chocolatey:
choco install neovim
Scoop:
scoop install neovim
Silahkan lihat Cara Install Chocolatey atau Cara Install Scoop jika belum pernah menggunakan atau menginstall sebelumnya pada windows yang digunakan.
Setelah menginstall Neovim, dapat menjalankan nvim untuk membuka editor vim, atau nvim --version untuk melihat versi yang sedang digunakan.
Konfigurasi
Direktori dan file konfigurasi Neovim berbeda dengan vim. Neovim menggunakan nvim sebagai direktori konfigurasi dan init.vim sebagai file konfigurasi utamanya. Berbeda dengan vim yang menggunakan .vim dan .vimrc.
Lokasi file dan direktori konfigurasi Neovim di windows terletak di C:\Users\<username>\AppData\Local\nvim. Di dalam direktori nvim ini berisikan file konfigurasi dan plugin atau modul yang kita buat.
Sampai disini mari kita membuatnya. Kita akan lakukan konfigurasi, membuat pengaturan dasar, dan menambahkan plugin.
Kita mulai dari membuat direktori dan file konfigurasinya. Silahkan buat folder baru di C:\Users\<username>\AppData\Local dengan nama nvim dan isi dengan beberapa file dan folder seperti dibawah ini.
~\AppData\Local\nvim ├── lua │ ├── config │ ├── plugins.lua │ └── settings.lua └── init.lua
Sebelum melanjutkan, sedikit bicara tentang bahasa konfigurasi kita. Bahwa kita akan melakukan konfigurasi menggunakan bahasa lua, ini hanya sebuah pilihan, melihat adanya beberapa plugin yang ditulis dalam bahasa lua dan kemudahan dalam konfigurasi. Meskipun kita dapat menjalankan kode lua pada vimscript atau init.vim.
Tidak membahas lebih dalam tentang lua disini, jika ingin mempelajarinya silahkan kunjungi nvim-lua-guide.
Sekarang pada file lua yang telah dibuat di dalam direktori ~\AppData\Local\nvim silahkan tambahkan di bawah ini. Sesuai file.
//init.lua
require('plugins')
require('settings')
//settings.lua local g = vim.g local opt = vim.opt g.mapleader = ' ' opt.mouse = 'a' opt.wrap = false opt.hidden = true opt.number = true opt.scrolloff = 9 opt.numberwidth = 2 opt.showmode = false opt.updatetime = 250 opt.cursorline = true opt.signcolumn = 'yes:1' opt.termguicolors = true opt.relativenumber = true opt.whichwrap = vim.o.whichwrap .. '<,>,h,l'
//plugins.lua
local ok, packer = pcall(require, 'packer')
if not ok then
print ('packer.nvim tidak ditemukan!')
return
end
require('packer').init({
display = {
open_fn = function()
return require('packer.util').float({ border = 'single' })
end,
},
compile_path = vim.fn.stdpath('config') .. '/plugin/packer_compiled.lua',
})
return require('packer').startup(function(use)
use 'wbthomason/packer.nvim'
----Plugins----
if packer_bootstrap then
require('packer').sync()
end
end)
Kemudian jalankan perintah di bawah ini pada aplikasi command prompt yang digunakan untuk kloning plugin manager packer.
git clone https://github.com/wbthomason/packer.nvim "$env:LOCALAPPDATA\nvim-data\site\pack\packer\start\packer.nvim"
Disini Kita gunakan packer sebagai plugin manager, jika ingin menggunkan yang lain seperti paq-nvim, vim-plug, atau vim-packager silahkan disesuaikan.
Packer yang telah dikloning berlokasi di ~\AppData\Local\nvim-data\site. Di lokasi ini plugin yang kita install berada.
nvim-data merupakan direktori data default yang menyimpan file konfigurasi seperti data log, ShaDa (Shared Data), file swap dan lain sebagainya.
Install Plugin
Sampai disini kita tinggal menambahkan plugin. Kita akan melakukan instalasi plugin, dan plugin yang akan kita install disini hanya untuk contoh, silahkan lihat referensi di bawah atau lakukan browsing jika ingin menggunakan yang lain.
Silahkan tambahkan di bawah ini pada file plugins.lua.
----Plugins----
use 'nathom/filetype.nvim'
use 'lewis6991/impatient.nvim'
use 'kyazdani42/nvim-web-devicons'
-- colorscheme
use 'sainnhe/gruvbox-material'
-- statusline
use{
'nvim-lualine/lualine.nvim',
config = function()
require('config.lualine')
end,
}
-- buffer
use {
'akinsho/bufferline.nvim',
config = function()
require('config.bufferline')
end,
}
-- git
use {
'lewis6991/gitsigns.nvim',
requires = {'nvim-lua/plenary.nvim'},
config = function()
require('config.gitsigns')
end,
}
Selanjutnya setelah plugin diatas ditambahkan, silakan buat 3 file baru di folder config dengan nama lualine.lua, bufferline.lua, dan gitsigns.lua kemudian copas konfigurasi plugin bawah, sesuai file.
~\AppData\Local\nvim ├── lua ├──── config │ ├── lualine.lua │ ├── bufferline.lua │ └── gitsigns.lua ├──── plugins.lua ├──── settings.lua └── init.lua
//bufferline.lua
local ok, bufferline = pcall(require, 'bufferline')
if not ok then
return
end
bufferline.setup{
options = {
numbers = 'none',
close_icon = '',
modified_icon = '●',
indicator_icon = '▎',
left_trunc_marker = '',
buffer_close_icon = '',
right_trunc_marker = '',
enforce_regular_tabs = true,
show_buffer_close_icons = true,
always_show_bufferline = true,
max_prefix_length = 15,
max_name_length = 18,
tab_size = 18,
},
}
//lualine.lua
local ok, lualine = pcall(require, 'lualine')
if not ok then
return
end
lualine.setup {
options = {
icons_enabled = true,
theme = 'auto',
component_separators = { left = '', right = ''},
section_separators = { left = '', right = ''},
disabled_filetypes = {},
always_divide_middle = true,
},
sections = {
lualine_a = {'mode'},
lualine_b = {'branch', 'diff', 'diagnostics'},
lualine_c = {'filename'},
lualine_x = {'encoding', 'fileformat', 'filetype'},
lualine_y = {'progress'},
lualine_z = {'location'}
},
inactive_sections = {
lualine_a = {},
lualine_b = {},
lualine_c = {'filename'},
lualine_x = {'location'},
lualine_y = {},
lualine_z = {}
},
tabline = {},
extensions = {}
}
//gitsigns.lua
local ok, gitsigns = pcall(require, 'gitsigns')
if not ok then
return
end
gitsigns.setup {
signs = {
add = {hl = 'GitSignsAdd' , text = '│', numhl='GitSignsAddNr' , linehl='GitSignsAddLn'},
change = {hl = 'GitSignsChange', text = '│', numhl='GitSignsChangeNr', linehl='GitSignsChangeLn'},
delete = {hl = 'GitSignsDelete', text = '_', numhl='GitSignsDeleteNr', linehl='GitSignsDeleteLn'},
topdelete = {hl = 'GitSignsDelete', text = '‾', numhl='GitSignsDeleteNr', linehl='GitSignsDeleteLn'},
changedelete = {hl = 'GitSignsChange', text = '~', numhl='GitSignsChangeNr', linehl='GitSignsChangeLn'},
},
}
Setelah konfigurasi ditambahkan, selanjutnya silakan buka editor vim (neovim) di command prompt (nvim -> enter), kemudian jalankan :PackerInstall (shift + : + PackerInstall -> enter) untuk memulai penginstalan.
Setelah selesai, silahkan lakukan pengaturan tambahan berikut. Sesuai file.
//init.lua
require('impatient')
...
//settings.lua g.gruvbox_material_transparent_background = 1 -- Warna background mengikuti tema prompt vim.cmd [[colorscheme gruvbox-material]]
Terakhir, silakan muat ulang vim dan jalankan :PackerCompile. Hasilnya seperti gambar di bawah ini:
Sampai disini plugin telah diinstall dan digunakan. Berikut adalah apa yang saya gunakan dalam contoh penggunaan Neovim/Vim diatas:
- Windows 11
- PowerShell di Windows Terminal
Referensi Plugin
Berikut adalah beberapa referensi plugin sebagai alternatif yang dapat menjadi pilihan dari apa yang telah diinstall sebelumnya.
//Colorscheme https://github.com/sainnhe/everforest https://github.com/joshdick/onedark.vim https://github.com/folke/tokyonight.nvim https://github.com/arcticicestudio/nord-vim https://github.com/monsonjeremy/onedark.nvim //Statusline https://github.com/glepnir/galaxyline.nvim https://github.com/feline-nvim/feline.nvim
Packer Commands
Berikut adalah daftar perintah packer lainnya yang berhubungan dengan plugin baik jika ada perubahan atau penambahan plugin.
// Install plugin :PackerInstall // Meng'compile atau membuat file loader // Lakukan `PackerCompile` jika membuat perubahan pada konfigurasi plugin atau menambahkan plugin :PackerCompile // Hapus plugin :PackerClean // Hapus, update dan install plugin :PackerUpdate // Melakukan `PackerUpdate` dan `PackerCompile` // Lakukan `PackerSync` jika membuat perubahan pada konfigurasi plugin :PackerSync
Selesai
Pengaturan & konfigurasi Neovim diatas juga bisa dilihat di Github: Lihat repo.
Kita selesai sampai disini. Instalasi dan konfigurasi Neovim di windows telah selesai , dan dengan beberapa contoh plugin.
Plugin yang diinstall mungkin sebagian kecil dari banyaknya plugin yang ada untuk menunjang produktifitas kita dalam menggunkaan editor vim. Namun dari contoh penginstalan plugin diatas, tidak sulit untuk menambahkan plugin, dan kiranya bisa dipahami.
Mungkin di lain kesempatan kita bahas kembali tentang Neovim baik konfigurasi dan rekomendasi plugin bermanfaat lainnya.
Silakan dicoba dan lakukan eksperimen.

