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.