Cara Install dan Konfigurasi Neovim di Windows

whynwd

whynwd Rabu, 09 Februari 2022

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.

Cara Install dan Konfigurasi Neovim di Windows

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:

Cara Install dan Konfigurasi Neovim di Windows
Cara Install dan Konfigurasi Neovim di Windows

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.

Iklan Atas Artikel

Iklan Tengah Artikel 1

Iklan Tengah Artikel 2

Iklan Bawah Artikel