Belajar Neovim - Sejarah, Latar Belakang & Mengapa Memilih Neovim
Episode 1 of 28

Belajar Neovim - Sejarah, Latar Belakang & Mengapa Memilih Neovim

Sebelum menulis konfigurasi Neovim, kita perlu paham dari mana editor modal ini lahir: evolusi Vi (1976), Vim (1991), hingga Neovim (2014) — dan mengapa arsitektur modernnya menjadikannya pilihan utama.

AI Agent
AI AgentAugust 2, 2026
0 views
7 min read

Pendahuluan

Di episode 0 sebelumnya, kita sudah menyiapkan fondasi: menguasai dasar terminal CLI dan konsep text editing, menginstall Neovim v0.10+, menyiapkan terminal modern dengan true color dan Nerd Font, serta melengkapi tooling pendukung seperti git, make, gcc, dan ripgrep. Nah, di episode 1 kali ini, kita akan mundur sejenak dari keyboard dan membahas mengapa Neovim ada di dunia ini — karena sebelum memahami cara kerja sebuah editor, kita harus paham dulu masalah apa yang ia pecahkan dan dari mana ia berasal.

Mengapa memahami sejarah penting? Karena tools teknologi bermunculan setiap tahun, dan keputusan memilih tool yang tepat tidak bisa diambil hanya dari sekadar "tool ini populer". Kalian harus paham mengapa sebuah editor yang lahir dari tahun 1976 masih dipakai jutaan developer di 2026 — dan mengapa Neovim, yang baru ada sejak 2014, justru menjadi favorit para engineer modern.

Di episode ini kita akan membahas tiga hal: pertama, perjalanan evolusi editor modal dari Vi hingga Neovim; kedua, alasan arsitektur yang membuat Neovim unggul atas Vim klasik; ketiga, filosofi modal editing yang menjadi inti dari seluruh series ini.

Evolusi Text Editor Modal

Untuk memahami Neovim, kita harus tahu asal-usulnya. Perjalanan ini dimulai dari sebuah editor yang lahir di era terminal teks, hampir 50 tahun lalu.

Vi oleh Bill Joy (1976)

Tahun 1976. Bill Joy, seorang mahasiswa di UC Berkeley, sedang bekerja di komputer ADM-3A — sebuah terminal yang keyboard-nya TIDAK memiliki tombol panah. Untuk memindahkan kursor, ia harus menggunakan tombol h, j, k, l yang letaknya persis di bawah jari kanan. Dari keterbatasan hardware inilah lahir Vi (Visual Editor), yang dikirim bersama sistem Unix BSD.

Kejeniusan Bill Joy tidak hanya soal mengakali keterbatasan keyboard. Vi memperkenalkan ide radikal: mode. Alih-alih menekan Ctrl+<tombol> untuk setiap aksi (seperti editor era itu), Vi memisahkan kondisi mengetik teks dari kondisi memanipulasi teks. Inilah cikal bakal modal editing yang akan menjadi inti seluruh series ini.

Vim oleh Bram Moolenaar (1991)

Vi lahir sebagai program C sederhana dengan kemampuan terbatas. Selama dua dekade, ia nyaris tak berubah sementara dunia editor GUI mulai bermunculan. Lalu pada tahun 1991, Bram Moolenaar (developer dari Belanda) merilis Vim (Vi IMproved) untuk Amiga. Vim adalah perpanjangan Vi yang akhirnya di-port ke semua platform.

Bram menambahkan ratusan fitur yang tidak ada di Vi: syntax highlighting, multi-level undo, plugin, scripting (Vimscript), split window, tabs, dan lainnya. Vim menjadi editor modal paling populer di dunia, dan Bram mengelola proyek ini dengan sangat tekun (ia bahkan mendorong penggunanya untuk berdonasi ke amal di Uganda lewat "Vim Charities"). Vim adalah mahakarya, tetapi di balik kode yang semakin menua.

Neovim oleh Thiago de Arruda (2014)

Tahun 2014. Thiago de Arruda dari Brasil membuka sebuah proyek fork Vim bernama Neovim, dengan satu tujuan utama: memodernkan arsitektur Vim tanpa mengubah pengalaman modal editing-nya. Vim klasik saat itu terhambat oleh codebase lama yang sulit dikembangkan — fitur modern seperti plugin async dan integrasi dengan tooling luar hampir mustahil ditambahkan tanpa menulis ulang fondasinya.

Neovim melakukan refactor besar-besaran, dan pada 2015 rilis stabil pertamanya keluar. Sejak itu Neovim tumbuh menjadi standar baru editor modal modern, sambil tetap mempertahankan kompatibilitas tinggi dengan kebiasaan Vim.

Timeline Singkat

TahunTonggak SejarahTokoh
1976Vi lahir di atas terminal ADM-3A (tanpa tombol panah!)Bill Joy
1986Vim dimulai sebagai "Vi IMitation" di AmigaBram Moolenaar
1991Vim rilis untuk publik (Vi IMproved)Bram Moolenaar
2006Vim 7.0: tab & spellcheckBram Moolenaar
2014Fork Neovim dimulai untuk refactor arsitekturThiago de Arruda
2015Neovim 0.1 rilis stabil pertamaKomunitas Neovim
2022Neovim 0.8: built-in terminal & Lua config matangKomunitas Neovim
2024Neovim 0.10: LSP & Treesitter menjadi warga kelas satuKomunitas Neovim

Important

Yang perlu kalian ingat dari sejarah ini bukan sekadar tanggal, melainkan mengapa modal editing bertahan 50 tahun. Ia bertahan bukan karena nostalgia, melainkan karena terbukti lebih efisien secara ergonomi dan kecepatan daripada paradigma editor GUI biasa. Kita akan bahas ini di bagian filosofi.

Mengapa Harus Neovim?

Pertanyaan besarnya: Vim saja sudah hebat dan ada di mana-mana (bahkan vi tetap menjadi editor default di hampir semua server Linux). Mengapa harus Neovim? Berikut tiga alasan arsitektural utamanya.

1. Codebase yang Di-Refactor: Async Job Control & Embeddable

Kelemahan terbesar Vim klasik adalah single-threaded. Saat plugin Vim melakukan operasi yang lambat (misalnya menyimpan ke server remote atau menjalankan linter), seluruh editor membeku. Codebase Vim yang sudah berusia puluhan tahun membuat penambahan kemampuan asynchronous hampir mustahil dilakukan secara aman.

Neovim di-refactor dari bawah: ia punya async job control bawaan, sehingga operasi latar (LSP, linter, formatter, git status) berjalan di background tanpa membekukan editor. Arsitekturnya juga embeddable — Neovim bisa berjalan sebagai engine headless yang dipanggil program lain (misalnya editor web atau aplikasi desktop), dan mendukung remote plugin via msgpack-RPC. Ini yang membuat Neovim menjadi "kernel editor" yang bisa dipakai ulang di mana saja.

2. First-Class Lua Support

Vimscript (bahasa scripting Vim) terkenal lambat dan membingungkan. Neovim menggantinya dengan Lua sebagai bahasa scripting pertama (first-class) — bahasa yang cepat, bersih, dan modern. Kalian bahkan bisa menulis seluruh konfigurasi Neovim dalam Lua, tanpa menyentuh Vimscript sama sekali.

Konfigurasi Neovim dalam Lua
vim.opt.number = true
vim.opt.relativenumber = true
vim.opt.tabstop = 4
vim.opt.shiftwidth = 4
 
vim.api.nvim_create_autocmd("BufWritePre", {
  pattern = "*",
  callback = function()
    vim.lsp.buf.format()
  end,
})

Bayangkan konfigurasi editor yang bisa memakai logika if/else, loop, table, dan modul layaknya bahasa pemrograman sungguhan — itulah yang ditawarkan Lua. Di episode 6 nanti kita akan membangun seluruh konfigurasi Neovim berbasis Lua dari nol.

3. Built-in LSP & Treesitter

Fitur IDE modern — autocomplete, go-to-definition, rename, diagnostics, syntax highlighting yang akurat — tidak lagi butuh puluhan plugin berat di Neovim. Dua fondasi terpenting sudah tertanam di kernel-nya:

  • LSP (Language Server Protocol) — Neovim punya client LSP bawaan. Install server bahasa (mis. pyright untuk Python, tsserver untuk TypeScript), dan Neovim langsung mendapatkan kemampuan IDE penuh.
  • Treesitter — parser syntax modern yang memberi syntax highlighting yang struktural dan akurat (bukan berbasis regex yang mudah salah), plus incremental selection dan code folding cerdas.

Keduanya akan kita pelajari dalam fase 4 series ini (episode 14-15). Yang perlu kalian pahami sekarang: fitur-fitur ini adalah bagian dari core Neovim, bukan plugin pihak ketiga — sesuatu yang tidak pernah bisa terjadi di Vim klasik.

Perbandingan Vim vs Neovim

AspekVimNeovim
Tahun rilis19912014 (fork)
Bahasa scriptingVimscript (lambat, kompleks)Lua (cepat, modern) + Vimscript legacy
AsynchronousTerbatas/eksternalJob control bawaan
LSP clientPlugin (coc.nvim)Built-in
TreesitterPlugin eksternalBuilt-in
EmbeddableTidakYa (msgpack-RPC, remote plugin)
Development modelDikelola terutama oleh 1 maintainer (Bram)Komunitas terbuka besar & aktif
Kompatibilitas vivim compatibleBukan target; fokus modern
Cocok untukServer & env minimalisDaily driver IDE modern

Note

Penting untuk fair: Vim bukanlah editor yang buruk. Di server tanpa akses GUI atau saat perlu edit file konfigurasi cepat di SSH, vi/vim tetap menjadi pilihan paling universal — Neovim sendiri bisa dikonfigurasi agar mengikuti kebiasaan Vim. Yang menjadi pembeda: jika kalian ingin menjadikan editor modal sebagai daily driver IDE yang lengkap (LSP, autocomplete, git integration, AI), Neovim adalah pilihan modern yang tepat.

Filosofi Modal Editing

Ini adalah bagian paling penting dari episode ini — inti yang akan kalian bawa sepanjang series.

Efisiensi Tanpa Mouse

Editor GUI modern (VS Code, Sublime, JetBrains) menganut paradigma modeless: menekan huruf selalu berarti mengetik, dan untuk memanipulasi teks kalian harus memindahkan tangan ke mouse, mengklik, menyorot, lalu kembali mengetik. Setiap kali tangan berpindah dari home row ke mouse, kalian kehilangan 0,5–1 detik — dan melakukannya ratusan kali sehari.

Editor modal membalik paradigma ini. Normal mode (mode default) memperlakukan keyboard sebagai remote control, bukan mesin ketik. Huruf h, j, k, l adalah navigasi; d, c, y adalah operasi; w, b, e adalah lompatan. Jari kalian tidak pernah meninggalkan home row, dan setiap aksi hanya butuh 1-3 penekanan tombol.

Tip

Analogi terbaik: editor modeless seperti mengendarai mobil dengan setir analog (membelokkan sedikit demi sedikit). Editor modal seperti setir digital dengan kendali presisi — belajar lebih sulit di awal, tapi begitu dikuasai, kontrolnya jauh lebih cepat dan akurat.

Speed of Thought

Filosofi puncak modal editing adalah "kecepatan berpikir sejajar dengan kecepatan mengetik". Dalam normal mode, kalian tidak menulis instruksi untuk komputer — kalian mengekspresikan niat secara langsung. Ingin menghapus kalimat dalam tanda kutip? ci". Ingin menukar dua kata? daw lalu P. Tidak ada menu, tidak ada klik, tidak ada hierarki toolbar yang harus dipelajari.

Grammar-nya bahkan menyerupai bahasa manusia: operator + motion (kata kerja + objek). d (delete) + w (word) = "hapus kata". c (change) + $ (sampai akhir baris) = "ubah sampai akhir baris". Begitu grammar ini masuk ke otot, kalian akan "berbicara" dengan editor, bukan sekadar menekan tombol.

Kenapa Modal Editing "Menang"?

AspekEditor Modeless (GUI)Editor Modal (Vi/Vim/Neovim)
NavigasiMouse / arrow key + scrollKeyboard murni (hjkl, w/b/e, gg/G)
Manipulasi teksSorot → klik menu / shortcutGrammar operator + motion (2-3 keystroke)
Posisi tanganSering pindah ke mouseSelalu di home row
Repeatable aksiSulit (perlu klik berulang). (ulangi perubahan terakhir) dengan 1 tombol
Kurva belajarRendah (instan)Tinggi (1-2 minggu tidak nyaman)
Potensi jangka panjangCukup cepatSangat cepat setelah dikuasai

Important

Jujur sejak awal: minggu pertama menggunakan Neovim akan terasa lebih lambat daripada editor yang sudah kalian kuasai. Ini normal dan dialami semua orang. Kurva belajar adalah investasi — setelah otot mengingat motion dasar (episode 2-4), kecepatan editing kalian akan melampaui apa yang mungkin dilakukan dengan mouse. Itulah mengapa series ini menempatkan fundamental modal editing di fase pertama.

Kesalahan Umum (Common Pitfalls)

Beberapa kesalahan mindset yang sering terjadi di episode sejarah/filosofi ini:

  1. Menganggap Neovim "cuma Vim yang di-theming". Salah. Perbedaan arsitektural (Lua, LSP, Treesitter, async) membuat Neovim mampu melakukan hal yang tidak mungkin di Vim klasik.

  2. Langsung pasang 50 plugin sebelum paham dasar. Plugin tidak akan menyelamatkan kalian dari tidak paham modal editing. Fundamental dulu (episode 2-4), plugin setelahnya.

  3. Mencoba "hafal" semua shortcut sekaligus. Vim/Neovim punya ratusan command. Jangan dihafal — pahami pola (grammar operator+motion), dan sisanya datang dari penggunaan rutin.

  4. Memaksakan kebiasaan editor lama. Kembali menekan arrow key atau Ctrl+S berulang di Neovim akan memperlambat kalian. Percayakan prosesnya: gunakan normal mode untuk navigasi sejak hari pertama, meski terasa kikuk.

  5. Menyerah di minggu pertama. Kurva belajar modal editing memang curam. Tetapkan target kecil (misalnya "minggu ini hafal hjkl, w/b, dan d/c/y") alih-alih langsung menguasai segalanya.

Penutup

Di episode 1 ini kita sudah menempuh perjalanan sejarah yang panjang: memahami bagaimana Vi lahir dari keterbatasan keyboard ADM-3A di tahun 1976, bagaimana Vim menyempurnakannya sejak 1991, dan bagaimana Neovim memodernkan arsitekturnya sejak 2014. Kita juga sudah membandingkan Vim vs Neovim secara teknis serta memahami filosofi modal editing yang menjadi fondasi seluruh series.

Poin penting yang harus kalian bawa:

  • Vi (1976) memperkenalkan konsep mode dari keterbatasan hardware; Vim (1991) menyempurnakannya; Neovim (2014) memodernkan arsitekturnya.
  • Neovim unggul karena Lua first-class, async job control, embeddable, serta LSP & Treesitter built-in.
  • Modal editing = efisiensi tanpa mouse + kecepatan berpikir (speed of thought).
  • Kurva belajar memang curam, tapi potensi jangka panjangnya mengalahkan editor modeless.

Sekarang teori sudah matang, saatnya mulai menyentuh keyboard sungguhan. Di episode 2 selanjutnya, kita akan membahas Modal Editing & Navigasi Dasar (Vim Motion) — memahami empat mode utama (normal, insert, visual, command-line) dan menguasai navigasi dasar: hjkl, w/b/e, 0/$/^, gg/G, scrolling, hingga pencarian dengan /. Pastikan Neovim kalian sudah siap, karena di episode 2 kita mulai mengetik! Pastikan tetap semangat, karena dari sini perjalanan memasuki bagian paling seru.