Menguasai gerakan navigasi dasar Emacs: C-f/b/n/p untuk karakter & baris, M-f/b untuk loncat kata, C-a/e untuk awal-akhir baris, lalu editing dengan mark & region (C-SPC, C-w, M-w, C-y), undo C-/, dan pola repeat untuk memindahkan seluruh operasi editing ke keyboard.

Setelah paham buffer & window, kini saatnya gerakan tangan — otot yang akan kalian pakai 8 jam sehari. Episode 5 adalah fase pembiasaan: semua navigasi dan editing dasar dipindahkan dari mouse ke keyboard.
Kenapa harus keyboard penuh? Karena setiap kali tangan meninggalkan posisi mengetik, ada biaya 0,5-1 detik mental dan fisik. Kalikan dengan 50 kali per jam, dan kalian kehilangan puluhan menit per hari. Emacs tidak memaksa — tapi ia memberikan alat agar kalian bisa. Episode ini melatih otot-otot itu.
Empat gerakan paling dasar — ingat C-f/b untuk karakter, C-n/p untuk baris:
| Shortcut | Aksi | Analogi |
|---|---|---|
C-f | Maju satu karakter (forward) | Panah kanan |
C-b | Mundur satu karakter (backward) | Panah kiri |
C-n | Turun satu baris (next) | Panah bawah |
C-p | Naik satu baris (previous) | Panah atas |
Lakukan di dalam Emacs, bukan di browser. C-n dan C-p tidak berpindah ke akhir baris pendek seperti arrow — mereka mempertahankan kolom. Perhatikan bedanya: kalian akan melihat pointer melompati akhir baris secara "pintar".
Level berikutnya — gerakan yang jauh lebih cepat untuk teks nyata:
| Shortcut | Aksi |
|---|---|
M-f | Maju satu kata (forward-word) |
M-b | Mundur satu kata (backward-word) |
C-a | Ke awal baris (beginning-of-line) |
C-e | Ke akhir baris (end-of-line) |
M-a | Ke awal kalimat |
M-e | Ke akhir kalimat |
M-< | Ke awal buffer |
M-> | Ke akhir buffer |
Note
M-< dan M-> — dalam prose ini ditulis dengan tanda lebih-kecil/lebih-besar — adalah shortcut ke awal & akhir seluruh buffer. Di banyak keyboard, M-< adalah Alt+Shift+, dan M-> adalah Alt+Shift+. Tiga gerakan ini (M-f, M-b, C-a/e) saja sudah menghilangkan 80% kebutuhan mouse untuk membaca kode.
C-v → scroll satu layar ke bawah
M-v → scroll satu layar ke atas
M-g g → go to line (prompt nomor baris)
M-< → ke awal buffer
M-> → ke akhir bufferM-g g sangat penting untuk membaca log atau stacktrace yang menyebut "line 145". Ketik M-g g 145 RET dan kalian langsung di sana.
"Selection" di Emacs disebut region: teks di antara mark dan point. Alur kerjanya berbeda dari klik-tahan-drag:
C-SPC → set mark di posisi sekarang
(gerak ke tempat lain — region tervisualisasi)
C-w → kill (potong) region
M-w → copy region
C-y → yank (tempel) yang terakhir di-killRegion Emacs lebih dari sekadar blok teks: Emacs 30 menampilkan region dengan highlight, dan region aktif hanya sementara. Jika kalian C-g atau memindahkan point tanpa melakukan apa-apa, region "mati" — tapi mark masih ada. Ini membuat Emacs bisa melakukan operasi region setelah berpindah, tanpa drag ulang.
Contoh alur tanpa drag: C-SPC di awal paragraf, M-> untuk ke akhir buffer, C-w untuk memotong semuanya. Satu gerakan seleksi yang tidak bisa ditiru editor lain.
Perbedaan halus tapi penting: kill/yank memakai kill-ring — sejarah potongan, bukan satu clipboard. C-y menempelkan yang terbaru; M-y mengganti dengan potongan yang lebih lama:
C-y → paste item terbaru dari kill-ring
M-y → ganti dengan item sebelumnya di kill-ringC-/ → undo (juga C-_ atau C-x u)Undo Emacs bersifat buffer-lokal — meng-undo di buffer A tidak memengaruhi buffer B. Sekali lagi: karena undo state adalah bagian dari buffer, bukan global.
Tip
Kalau undo membatalkan terlalu banyak (Emacs menggabungkan beberapa edit beruntun jadi satu langkah undo), pecahkan dengan menyisipkan gerakan non-edit seperti C-g atau C-f di antara edit. Di episode 23, paket undo-tree atau vundo memberikan visualisasi branch undo yang jauh lebih baik.
Hampir semua perintah bisa diulang dengan angka prefix:
C-u 5 C-f → maju 5 karakter
C-u 3 C-n → turun 3 baris
C-u 100 M-f → maju 100 kata
M-5 M-b → mundur 5 kataC-u diikuti angka, atau langsung M-<digit>. Ini gerakan "greedy" yang sangat berguna untuk teks terstruktur.
Ambil file ~/emacs-lab/hello.txt (dari episode 3). Sekarang lakukan, tanpa mouse:
1. C-x C-f ~/emacs-lab/hello.txt RET
2. C-e → ke akhir baris pertama
3. C-u 5 C-b → mundur 5 karakter
4. (ketik beberapa kata baru)
5. C-a → ke awal baris
6. M-d → delete kata (backward-kill-word)
7. C-/ → undo
8. C-SPC, gerak, C-w → potong satu region
9. C-y → tempel di tempat lain
10. C-x C-s → simpanJika kalian menyelesaikannya tanpa menyentuh mouse sekali pun, gerakan tangan dasar sudah tertanam.
C-w di mana pun bisa memotong teks: terutama saat kalian berada di minibuffer atau buffer lain. Biasakan C-g dulu untuk memastikan region tidak aktif kalau tidak mau memotong.C-x u untuk "undo window layout" — undo di Emacs 30 sudah termasuk perubahan window, jadi C-x u tidak mengembalikan layout. Gunakan C-x r w <nama> untuk menyimpan layout window.M-y hanya berfungsi setelah C-y — menggantikan item yang terakhir di-yank, bukan membuka menu pilihan.Pada episode 5 ini, kalian telah memindahkan operasi dasar ke keyboard.
Inti yang harus dibawa pulang:
C-f/b/n/p (karakter/baris), M-f/b (kata), C-a/e (baris), M-</M-> (buffer).C-SPC set mark, C-w kill, M-w copy, C-y yank, M-y siklus kill-ring.C-/ bersifat buffer-lokal; C-u N <cmd> mengulang perintah N kali.Di episode 6 selanjutnya, kita membahas search & replace (Isearch) — incremental search C-s/C-r, search regex, query-replace dengan M-%, dan query-replace-regexp untuk refactor kode yang aman. Sampai jumpa di episode 6!