Tutorial Neovim Setup dari Nol — Dari Terminal Biasa jadi Code Editor Andalan Ditulis oleh Adam Muiz 01 Aug 2026 Diperbarui: 06 Aug 2026 6 menit baca Beberapa tahun lalu, aku masih nyaman sekali dengan VS Code. Buka project, klik-klik sidebar, install extension, dan semua berjalan. Tapi makin lama, aku makin merasa ada yang mengganjal: startup-nya mulai berat, RAM makin sering dipakai besar, dan tangan aku terlalu sering berpindah antara keyboard dan mouse. Rasanya seperti menulis dengan pena yang bagus, tapi setiap beberapa menit harus berhenti untuk mengasahnya. Lalu aku coba Neovim. Pertama kali buka, yang muncul cuma layar hitam dengan teks kecil dan notifikasi aneh. Aku hampir menyerah di menit ketiga. Tapi setelah paham bahwa Neovim itu bukan editor siap pakai melainkan kerangka yang harus dirakit, semuanya jadi masuk akal. Artikel ini adalah catatan perjalananku menyusun Neovim dari nol sampai bisa jadi andalan sehari-hari. Kenapa Neovim, Bukan Editor Lain? Neovim adalah fork dari Vim yang berfokus pada extensibility dan integrasi modern. Bedanya dengan Vim klasik? Neovim punya arsitektur berbasis Lua, API yang lebih bersih, dan komunitas plugin yang sangat aktif. Tapi yang paling kurasakan secara pribadi adalah kecepatan dan konsistensi. Bayangkan meja kerja. VS Code itu seperti meja dengan banyak laci, lampu, dan organizer bawaan. Tinggal pakai. Neovim itu seperti meja kosong dengan satu set alat dasar. Kamu yang menentukan mana yang perlu, mana yang tidak. Hasilnya? Meja yang pas dengan cara kerjamu. Keuntungan lain: Ringan: Buka file besar tidak tersendat. Keyboard-centric: Hampir semua bisa dikerjakan tanpa mouse. Portabel: Konfigurasi disimpan di ~/.config/nvim, mudah dibawa ke server lain. Terminal-native: Cocok untuk server headless atau SSH. Instalasi di Linux Distribusi Debian-based biasanya punya Neovim di repositori, tapi versinya sering tertinggal. Untuk fitur terbaru, aku lebih suka install dari .deb atau AppImage. Berikut cara yang paling sering aku pakai: # Install dari repositori (versi lebih tua) sudo apt update && sudo apt install neovim # Atau download .deb terbaru dari GitHub release cd ~/Downloads wget https://github.com/neovim/neovim/releases/download/stable/nvim-linux64.deb sudo dpkg -i nvim-linux64.deb # Verifikasi nvim --version Setelah terinstall, buat direktori konfigurasi: mkdir -p ~/.config/nvim/lua/plugins mkdir -p ~/.config/nvim/lua/config Neovim membaca konfigurasi utama dari ~/.config/nvim/init.lua. Dulu formatnya init.vim, tapi saat ini init.lua adalah standar yang lebih fleksibel. Konfigurasi Pertama: init.lua Sebelum install plugin, aku biasanya atur dulu opsi dasar. File ini ibarat fondasi rumah: kalau sudah kokoh, tambahan di atasnya jadi lebih stabil. -- ~/.config/nvim/init.lua vim.opt.number = true -- Tampilkan nomor baris vim.opt.relativenumber = true -- Nomor relatif untuk navigasi cepat vim.opt.tabstop = 2 -- Lebar tab vim.opt.shiftwidth = 2 -- Indentasi otomatis vim.opt.expandtab = true -- Konversi tab jadi spasi vim.opt.smartindent = true -- Indentasi pintar vim.opt.wrap = false -- Jangan wrap panjang baris vim.opt.termguicolors = true -- Warna 24-bit vim.opt.clipboard = "unnamedplus" -- Integrasi clipboard sistem vim.g.mapleader = " " -- Leader key: spasi -- Load modul konfigurasi require("config.keymaps") require("config.options") Dua baris terakhir memanggil file terpisah. Memisahkan konfigurasi membuatnya lebih mudah dikelola ketika sudah mulai banyak. Manajer Plugin dengan lazy.nvim Ada beberapa manajer plugin untuk Neovim, tapi lazy.nvim menjadi favoritku karena performa dan cara kerjanya yang modern. Plugin hanya dimuat saat dibutuhkan (lazy loading), sehingga startup tetap cepat. Pertama, install lazy.nvim: git clone --filter=blob:none https://github.com/folke/lazy.nvim.git \ --branch=stable ~/.local/share/nvim/lazy/lazy.nvim Lalu buat file ~/.config/nvim/init.lua agar memuat semua plugin dari folder lua/plugins: local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim" if not vim.loop.fs_stat(lazypath) then vim.fn.system({ "git", "clone", "--filter=blob:none", "https://github.com/folke/lazy.nvim.git", "--branch=stable", lazypath, }) end vim.opt.rtp:prepend(lazypath) require("lazy").setup("plugins") Dengan setup ini, setiap file Lua di dalam ~/.config/nvim/lua/plugins akan dianggap sebagai definisi plugin. Plugin Wajib untuk Produktivitas Berikut plugin yang aku pakai hampir setiap hari. Mereka bukan satu-satunya pilihan, tapi kombinasi ini cukup untuk membuat Neovim terasa seperti editor modern. 1. Telescope (Fuzzy Finder) -- lua/plugins/telescope.lua return { 'nvim-telescope/telescope.nvim', dependencies = { 'nvim-lua/plenary.nvim' }, config = function() local builtin = require('telescope.builtin') vim.keymap.set('n', '<leader>ff', builtin.find_files, {}) vim.keymap.set('n', '<leader>fg', builtin.live_grep, {}) vim.keymap.set('n', '<leader>fb', builtin.buffers, {}) end } Dengan Space + ff, aku bisa cari file. Space + fg untuk mencari teks di seluruh project. Ini menggantikan sidebar explorer dan search panel. 2. Treesitter (Parsing Cerdas) -- lua/plugins/treesitter.lua return { 'nvim-treesitter/nvim-treesitter', build = ':TSUpdate', config = function() require('nvim-treesitter.configs').setup { ensure_installed = { "lua", "python", "javascript", "html", "css" }, highlight = { enable = true }, indent = { enable = true }, } end } Treesitter membuat syntax highlighting lebih akurat dan membantu fitur seperti indentasi otomatis serta text object. 3. LSP dan Autocompletion -- lua/plugins/lsp.lua return { 'neovim/nvim-lspconfig', dependencies = { 'hrsh7th/nvim-cmp', 'hrsh7th/cmp-nvim-lsp', 'L3MON4D3/LuaSnip', }, config = function() local lspconfig = require('lspconfig') local capabilities = require('cmp_nvim_lsp').default_capabilities() lspconfig.lua_ls.setup { capabilities = capabilities } lspconfig.pyright.setup { capabilities = capabilities } end } LSP memberikan fitur seperti go-to-definition, diagnostic, dan hover documentation. nvim-cmp menangani autocompletion. 4. Tema yang Nyaman di Mata -- lua/plugins/theme.lua return { 'catppuccin/nvim', name = 'catppuccin', priority = 1000, config = function() vim.cmd.colorscheme 'catppuccin-mocha' end } Keymap yang Membuat Tangan Tidak Berpindah Jauh Salah satu alasan pindah ke Neovim adalah ergonomi. Aku ingin tangan tetap di home row. Beberapa keymap yang aku gunakan: -- lua/config/keymaps.lua vim.keymap.set('n', '<leader>w', ':w<CR>', { desc = 'Simpan file' }) vim.keymap.set('n', '<leader>q', ':q<CR>', { desc = 'Tutup buffer' }) vim.keymap.set('n', '<leader>h', '<C-w>h', { desc = 'Pindah ke split kiri' }) vim.keymap.set('n', '<leader>j', '<C-w>j', { desc = 'Pindah ke split bawah' }) vim.keymap.set('n', '<leader>k', '<C-w>k', { desc = 'Pindah ke split atas' }) vim.keymap.set('n', '<leader>l', '<C-w>l', { desc = 'Pindah ke split kanan' }) Leader key aku pakai spasi karena mudah dijangkau oleh ibu jari. Tidak perlu memutar pergelangan tangan seperti saat mencapai kombinasi Ctrl + Shift + ... di editor konvensional. Transisi dari VS Code: Tips Bertahan Minggu pertama pindah ke Neovim terasa seperti belajar mengetik ulang. Aku sering frustrasi karena hal yang biasanya satu klik jadi perlu diingat shortcut-nya. Tapi ada beberapa strategi yang membantuku bertahan: Jangan migrasi semua sekaligus: Mulai dari file konfigurasi atau script kecil, bukan project utama. Pelajari modal editing sedikit demi sedikit: Normal mode, insert mode, visual mode. Fokus pada navigasi dasar dulu. Buat catatan shortcut: Aku tulis keymap favorit di catatan sampai otot ingat. Gunakan vimtutor: Cukup jalankan di terminal, latihan 30 menit sehari selama seminggu. Jangan perfeksionis: Konfigurasi tidak harus sempurna dari hari pertama. Aku masih sering menyederhanakan setupku. Kesimpulan Neovim bukan jawaban untuk semua orang. Kalau kamu butuh editor yang langsung jalan tanpa konfigurasi, VS Code atau IDE tetap pilihan yang masuk akal. Tapi kalau kamu ingin editor yang bisa disesuaikan sepenuhnya, bekerja cepat di terminal, dan mengurangi pergantian tangan antara keyboard dan mouse, Neovim layak dicoba. Bagiku, proses merakit Neovim justru jadi bagian dari belajarnya. Setiap plugin yang dipasang, setiap keymap yang ditambah, adalah keputusan tentang bagaimana aku ingin bekerja. Di akhir, yang kudapat bukan cuma editor baru, tapi pemahaman lebih dalam tentang alat yang kupakai setiap hari. Jika kamu sudah mencoba Neovim, apa plugin favoritmu? Atau masih ragu untuk pindah? Tulis di kolom komentar.