Belajar Neovim - Modal Editing & Navigasi Dasar (Vim Motion)
Episode 2 of 28

Belajar Neovim - Modal Editing & Navigasi Dasar (Vim Motion)

Setelah memahami filosofi modal editing, saatnya berlatih: mengenal empat mode utama (normal, insert, visual, command-line) dan menguasai navigasi dasar Vim motion dari hjkl hingga pencarian pola.

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

Pendahuluan

Setelah di episode 1 sebelumnya kita membahas sejarah, latar belakang, dan filosofi modal editing — mengapa editor yang lahir dari tahun 1976 masih relevan di 2026, dan mengapa Neovim menjadi pilihan modern — pada episode kali ini kita akan mulai menyentuh keyboard sungguhan. Inilah episode yang paling menentukan dalam seluruh series: memahami mode dan menguasai navigasi dasar.

Mengapa ini penting? Navigasi adalah 50% dari aktivitas editing. Sebelum menghapus, mengubah, menyalin, atau menempel teks, kalian harus berada di tempat yang tepat. Di editor modeless, "berada di tempat yang tepat" berarti menggerakkan mouse atau menahan tombol panah — lambat dan tidak presisi. Di Neovim, setiap gerakan kursor adalah perintah yang disengaja, bisa diulang, dan bisa dikombinasikan. Kalian akan menguasai grammar yang nanti dipakai di episode 3 untuk operasi penghapusan, perubahan, dan penyalinan.

Ada kabar baik: kalian tidak perlu menghafal ratusan shortcut. Cukup kuasai ~25 motion dasar di episode ini, dan 90% navigasi sehari-hari sudah ter-cover. Sisanya datang dari penggunaan rutin.

Memahami Modal Editing

Inti dari Neovim adalah konsep mode: sebuah keadaan yang menentukan apa yang terjadi saat kalian menekan sebuah tombol. Ini berbeda total dengan editor modeless di mana tombol selalu menghasilkan teks.

Normal Mode (Navigasi & Manipulasi)

Normal mode adalah mode default saat Neovim dibuka. Di sini, tombol bukan menghasilkan teks, melainkan perintah. h bukan huruf "h", melainkan "pindah kursor ke kiri". d bukan huruf "d", melainkan "hapus". Bayangkan normal mode sebagai cockpit pesawat — setiap tombol adalah kontrol, dan tangan kalian selalu di home row.

Insert Mode (Menulis Teks)

Insert mode adalah tempat menulis teks. Kalian masuk ke insert mode dengan menekan i (insert sebelum kursor), a (append setelah kursor), I (awal baris), atau A (akhir baris). Keluar kembali ke normal mode dengan menekan Esc atau Ctrl+[.

Important

Aturan emas Neovim: jangan tinggal lama-lama di insert mode. Begitu selesai mengetik, langsung tekan Esc kembali ke normal mode. Kebiasaan "menulis lalu langsung berhenti di insert mode" adalah penyebab terbesar lambatnya pengguna Neovim pemula — karena mereka kehilangan seluruh kekuatan navigasi dan manipulasi.

Visual Mode (Seleksi)

Visual mode adalah mode untuk menyorot teks seperti saat kalian men-drag mouse di editor lain. Ada tiga varian:

Mode VisualCara MasukFungsi
Character-wisevMenyorot per karakter
Line-wiseVMenyorot seluruh baris sekaligus
Block-wiseCtrl+vMenyorot kolom persegi (sangat berguna untuk edit kolom)

Command-Line Mode (Perintah :)

Command-line mode dibuka dengan menekan : di normal mode. Di sinilah kalian menjalankan perintah seperti :w (simpan), :q (keluar), :e file (buka file), hingga perintah eksotik :%s/old/new/g (replace — episode 4). Setiap perintah diakhiri dengan Enter.

Ringkasan Mode

ModeCara MasukFungsi UtamaKeluar
NormalDefault / EscNavigasi & manipulasi
Inserti, a, I, AMenulis teksEsc / Ctrl+[
Visual (char)vSeleksi per karakterEsc / v
Visual (line)VSeleksi per barisEsc / V
Visual (block)Ctrl+vSeleksi kolomEsc / Ctrl+v
Command-line:Menjalankan perintahEnter / Esc

Tip

Cara paling aman keluar dari mode apapun yang membingungkan: tekan Esc satu atau dua kali. Esc adalah "reset universal" Neovim — selalu membawa kalian kembali ke normal mode. Kebiasaan Esc di saat bingung akan menyelamatkan kalian berkali-kali.

Navigasi di Neovim disebut motion — gerakan kursor yang ekspresif dan bisa dikombinasikan dengan angka (count) maupun operator (episode 3). Mari kita bedah satu per satu.

Pergerakan Karakter: h, j, k, l

Kunci ini terletak di home row — jari kalian tidak perlu bergerak. Ketika kalian menekan h di normal mode, kursor bergerak satu karakter ke kiri, dan seterusnya. Karena terletak di bawah jari-jari, gerakan ini jauh lebih cepat daripada berpindah ke arrow key atau mouse.

Perjalanan hjkl
h   pindah kursor satu karakter ke kiri
j   pindah kursor satu baris ke bawah
k   pindah kursor satu baris ke atas
l   pindah kursor satu karakter ke kanan

Warning

Berhenti memakai arrow key. Arrow key tetap berfungsi di Neovim, tapi memakainya berarti membuang keuntungan utama modal editing. Latih otot kalian untuk otomatis menjangkau hjkl. Dalam beberapa hari, arrow key akan terasa asing.

Pergerakan Kata & Baris: w, b, e, 0, $, ^, gg, G

Pindah per karakter itu lambat. Neovim memberikan motion berbasis kata dan baris yang jauh lebih efisien:

MotionFungsi
wLompat ke awal kata berikutnya (word)
bLompat ke awal kata sebelumnya (back)
eLompat ke akhir kata saat ini/berikutnya (end)
0Lompat ke kolom 0 (awal baris)
^Lompat ke karakter non-spasi pertama di baris
$Lompat ke akhir baris
ggLompat ke baris pertama file
GLompat ke baris terakhir file
<n>GLompat ke baris nomor n (misal 42G → baris 42)

Contoh nyata: untuk pindah dari awal ke akhir baris panjang, sekali tekan $ jauh lebih cepat daripada menahan l selama 30 ketukan. Untuk pindah antar fungsi di file kode, w/b jauh lebih efektif daripada scroll.

Motion kata & baris
w    pindah maju satu kata
3w   pindah maju tiga kata sekaligus (count!)
e    pindah ke akhir kata
0    awal baris
^    karakter pertama (bukan spasi) di baris
$    akhir baris

Tip

Perhatikan 0 vs ^: 0 menuju kolom nol mutlak (termasuk spasi indent), sedangkan ^ menuju karakter pertama yang "benar-benar" ada di baris (lewati indent). Di kode dengan indentasi, ^ hampir selalu yang kalian inginkan.

Pergerakan Halaman: Ctrl+u, Ctrl+d

Untuk file panjang, scroll halaman lebih efisien daripada j/k berulang kali:

ShortcutFungsi
Ctrl+uScroll setengah layar ke atas (up)
Ctrl+dScroll setengah layar ke bawah (down)
Ctrl+fScroll satu halaman penuh ke depan (forward)
Ctrl+bScroll satu halaman penuh ke belakang (backward)
zzRecenter kursor ke tengah layar
zt / zbKursor ke atas / bawah layar

zz adalah favorit banyak engineer — saat tersesat di file panjang, zz menengahkan kursor dan kalian langsung "melihat konteks" di sekitar posisi kalian.

Pencarian: /pattern, ?pattern, n, N, *, #

Motion berbasis pola adalah lompatan paling kuat:

CommandFungsi
/kataCari kata ke depan (mundur dari kursor)
?kataCari kata ke belakang
nLompat ke hasil berikutnya (next)
NLompat ke hasil sebelumnya
*Cari kata di bawah kursor (ke depan)
#Cari kata di bawah kursor (ke belakang)
Ctrl+oKembali ke posisi sebelum lompatan

Pola pencarian di Neovim adalah regex — kalian bahkan bisa mencari dengan pola seperti /^def (baris yang diawali def) atau /\v\d+ (angka). Ini akan sangat berguna di episode 4 saat membahas search & replace.

Important

* dan # adalah senjata andalan saat mengedit kode: letakkan kursor di sebuah variabel, tekan *, dan Neovim melompat ke setiap kemunculan berikutnya. Untuk memahami semua tempat variabel dipakai — misalnya saat refactor atau menelusuri bug — tidak ada cara yang lebih cepat. Teknik ini disebut "search under cursor".

Tabel Referensi Shortcut Navigasi

Berikut tabel referensi lengkap episode ini — simpan di catatan kalian:

ModeKeyFungsi
Normalh j k lKiri / bawah / atas / kanan (per karakter/baris)
Normalw b eMaju kata / mundur kata / akhir kata
Normal0 ^ $Awal baris / karakter pertama / akhir baris
Normalgg G <n>GBaris pertama / terakhir / baris ke-n
NormalCtrl+u Ctrl+dScroll setengah layar naik / turun
NormalCtrl+f Ctrl+bScroll satu halaman maju / mundur
Normalzz zt zbKursor di tengah / atas / bawah layar
Normal/pola ?polaCari maju / mundur
Normaln NHasil pencarian berikutnya / sebelumnya
Normal* #Cari kata di bawah kursor maju / mundur
Normali a I AInsert sebelum / append setelah / insert awal baris / append akhir baris
Normalo OBaris baru di bawah / di atas kursor
Normalv V Ctrl+vVisual char / line / block
Normal:Command-line mode
InsertEsc / Ctrl+[Kembali ke normal mode
Command:wSimpan file
Command:qKeluar Neovim
Command:wq / :xSimpan lalu keluar
Command:e <file>Buka file lain

Latihan Praktik

Ilmu tanpa latihan tidak akan melekat. Ikuti latihan berikut — buat file baru, lalu kuasai gerakannya hingga tanpa berpikir:

  1. Buat file latihan:

    Mulai latihan
    nvim latihan.txt
     
    # Tekan i, ketik 10 baris teks bebas, lalu Esc
  2. Latihan baris & kata. Dengan hanya w, b, e, 0, $, telusuri seluruh file maju-mundur. Ulangi hingga tidak perlu berpikir.

  3. Latihan lompatan. Tekan gg untuk ke atas, G untuk ke bawah, lalu :42 untuk melompat ke baris 42.

  4. Latihan pencarian. Letakkan kursor di satu kata, tekan *, lalu telusuri semua kemunculannya dengan n dan N. Ulangi dengan /kata-bebas.

  5. Latihan scroll. Buka file panjang, latih Ctrl+d / Ctrl+u bergantian, lalu tekan zz untuk menengahkan pandangan.

  6. Latihan waktu. Jadikan perlombaan: hitung berapa detik yang kalian butuhkan untuk pindah dari baris 1 ke baris 100 hanya dengan keyboard. Target pribadi: di bawah 5 detik.

Tip

Ada cara jitu untuk melatih tanpa membuka file khusus: gunakan Neovim untuk mengedit semua teks — catatan, README, config, bahkan file .mdx seperti yang kalian baca ini. Tidak ada guru yang lebih baik daripada penggunaan nyata di pekerjaan sehari-hari.

Kesalahan Umum (Common Pitfalls)

  1. Caps Lock aktif. Saat menekan V untuk visual-line (atau nanti R, C, D), tiba-tiba mode berubah aneh — biasanya penyebabnya Caps Lock. Banyak vimmer menukar Caps Lock menjadi Esc di setting OS. Sangat direkomendasikan.

  2. Tinggal di insert mode. Sudah dibahas di atas, tapi layak diulang: keluar ke normal mode segera setelah selesai mengetik. Ini kebiasaan nomor satu yang harus diubah dari editor modeless.

  3. Bingung 0 vs ^. 0 menuju kolom nol (termasuk indent), ^ menuju karakter pertama. Di kode ber-indent, ^ hampir selalu yang diinginkan.

  4. Mencari dengan mouse. Mencoba-coba men-drag untuk mencari atau menscroll adalah musuh. Latih *, /, dan Ctrl+u/d sampai terasa alami.

  5. Menekan :q saat ada perubahan belum disimpan. Neovim menolak keluar (E37: No write since last change). Gunakan :wq, atau :q! untuk membuang perubahan. Ini normal — bukan error berbahaya.

  6. Memakai l untuk pindah ke akhir baris. Untuk baris panjang, $ jauh lebih efisien daripada menahan l.

Penutup

Di episode 2 ini kalian sudah menyentuh inti dari seluruh series: memahami enam mode Neovim (normal, insert, visual char/line/block, command-line) dan menguasai navigasi dasar — hjkl, motion kata & baris (w/b/e, 0/^/$, gg/G), scroll halaman (Ctrl+u/d), serta pencarian (/, ?, n/N, */#). Navigasi adalah fondasi dari segalanya: tanpa motion yang lancar, operasi editing tidak akan cepat.

Poin penting yang harus kalian bawa:

  • Normal mode adalah rumah kalian — kembali ke sana sesering mungkin dengan Esc.
  • Hindari arrow key & mouse sejak hari pertama; hjkl, motion kata, dan scroll adalah gantinya.
  • * / # adalah senjata utama saat menelusuri kode.
  • 0 = awal baris mutlak, ^ = karakter pertama, $ = akhir baris — hafalkan bedanya.
  • Latih dengan penggunaan nyata, bukan hanya file latihan.

Sekarang kalian bisa bergerak. Di episode 3 selanjutnya, kita akan membahas Operators, Text Objects & Advanced Motions — menggabungkan navigasi dengan operasi: menghapus (d), mengubah (c), menyalin (y), menempel (p), membatalkan (u/Ctrl+r), memanfaatkan text objects (ci", di(, yap), serta marks dan jump list. Di episode inilah "grammar" Neovim mulai terlihat — dan kecepatan kalian akan melompat. Pastikan tetap semangat!