Membedah perbedaan fundamental buffer, window, dan frame di Emacs, belajar membuka file dengan C-x C-f, berpindah buffer dengan C-x b, membelah layar dengan C-x 2/3, menutup window dengan C-x 0, dan membangun workflow multi-buffer yang produktif untuk mengelola banyak file sekaligus.

Di episode 2 kita menyentuh model buffer-window-frame secara konsep; episode 4 adalah praktik penuhnya. Inilah konsep yang paling sering membuat pendatang baru bingung — sekaligus konsep yang membuat Emacs begitu kuat begitu kalian menguasainya.
Bayangkan buffer sebagai lembar dokumen di atas meja, window sebagai kaca pembesar yang kalian letakkan di atas lembar itu, dan frame sebagai meja tempat semuanya berada. Satu lembar bisa terlihat oleh dua kaca pembesar; kaca pembesar bisa dipindah ke lembar lain; dan kalian bisa punya banyak meja. Setelah episode ini, workflow kalian akan berpindah dari "satu file satu layar" menjadi "banyak buffer, terorganisir".
Buffer adalah wadah teks — entitas yang sesungguhnya menyimpan data. Dua jenis buffer:
~/proyek/app.py).*scratch*, *Messages*, *Help*, *Minibuf-1*.C-x C-f → prompt "Find file:" di minibuffer → ketik path → RETC-x C-f (find-file) membaca file ke buffer baru (atau memakai buffer yang sudah ada), lalu menampilkannya di window. Perluasan tilde (~) dan completion otomatis sudah bekerja di minibuffer — ketik ~/e lalu TAB untuk melihat.
C-x C-b → buffer list (buffer *Buffer List*)Daftar ini menunjukkan nama, mode, ukuran, dan file dari semua buffer yang hidup. Tekan RET pada satu baris untuk berpindah ke buffer itu. Tekan d lalu x di buffer list untuk menandai & menutup buffer yang tidak dipakai.
C-x k → kill buffer (prompt nama buffer → RET)Menutup buffer tidak menutup window dan tidak menutup file di disk — hanya membuang lembar kerja dari memori. Buffer yang belum disimpan akan diminta konfirmasi dulu.
Window menampilkan satu buffer dalam satu area persegi. Emacs bisa membelah frame menjadi banyak window:
| Shortcut | Aksi |
|---|---|
C-x 2 | Belah window horizontal (atas-bawah) |
C-x 3 | Belah window vertikal (kiri-kanan) |
C-x o | Pindah ke window lain (other-window) |
C-x 0 | Tutup window aktif |
C-x 1 | Tutup semua window lain (sisa satu) |
C-x ^ | Perbesar window aktif ke atas/bawah |
C-x } | Lebarkan window aktif |
Coba sekarang: buka hello.txt lalu C-x 2. Kalian melihat satu buffer di dua window — bukan dua salinan. Edit di window atas, perubahan langsung terlihat di window bawah. Ini adalah sifat "buffer ≠ tampilan" yang paling gamblang.
C-x 0 ≠ C-x k.C-x 1 mematikan semua window kecuali satu — kalau kalian bekerja dengan banyak buffer, biasakan menyimpan layout dengan C-x r w <nama> (window configuration) untuk mengembalikannya.Frame adalah jendela tingkat OS. Beberapa hal penting:
C-x 2 di frame A tidak memengaruhi frame B.emacsclient -c — semuanya berbagi satu set buffer.Shortcut frame yang berguna: C-x 5 2 (buka frame baru), C-x 5 o (pindah ke frame lain), C-x 5 0 (tutup frame aktif).
Berpindah antar buffer setiap menit adalah aktivitas paling sering di Emacs. Beberapa cara dari yang dasar sampai yang canggih:
C-x b <nama> RET → berpindah ke buffer dengan nama
C-x C-b → lihat & pilih dari buffer list
M-x switch-to-buffer → sama dengan C-x bDua kebiasaan yang akan menghemat waktu kalian bertahun-tahun:
TAB untuk completion.C-x b tanpa argumen (langsung RET) membuka buffer terakhir yang kalian lihat. Tekan C-x b RET berulang untuk toggle dua buffer terakhir — ini pola "previous buffer" yang sangat sering dipakai.Tip
M-x ibuffer menampilkan daftar buffer yang bisa dikelompokkan per mode — jauh lebih nyaman untuk sesi dengan puluhan buffer. Di episode 19, kombinasi vertico + consult akan membuat C-x b menjadi pemilih fuzzy yang sangat cepat.
Pola kerja yang banyak dipakai developer Emacs:
1. C-x C-f src/app.py → buka file utama
2. C-x 3 → belah layar untuk file kedua
3. C-x C-f src/utils.py → buka file kedua di window kanan
4. C-x o → kembali ke window kiri
5. C-x C-s → simpan, lalu C-x C-b lihat daftar bufferKombinasi C-x 2/C-x 3 + C-x o adalah jantung editing multi-file. Di episode 16, Eglot akan mengotomatiskan sebagian — misalnya jump-to-definition otomatis membuka definisi di window lain.
Pada episode 4 ini, kalian telah menguasai model tampilan Emacs secara praktis.
Inti yang harus dibawa pulang:
C-x C-f buka file, C-x C-b lihat buffer, C-x k kill buffer (bukan close window).C-x 2/C-x 3 membelah, C-x o berpindah, C-x 0/C-x 1 menutup window.C-x b RET toggle dua buffer terakhir — pola produktivitas utama.Di episode 5 selanjutnya, kita masuk ke gerakan tangan paling dasar: navigasi & editing dasar — gerakan C-f/b/n/p, loncat kata dengan M-f/b, mark & region dengan C-SPC, kill/yank dengan C-w/M-w/C-y, dan undo dengan C-/. Sampai jumpa di episode 5!