Memahami fondasi konseptual Emacs: "extensible, self-documenting, real-time display editor", arsitektur buffer-window-frame, sistem major & minor mode, hooks & advice sebagai titik kustomisasi, dan ekosistem paket ELPA/MELPA yang membuat Emacs berkembang selama 40 tahun.

Episode 1 bercerita tentang mengapa Emacs lahir; episode ini membahas apa isi perutnya. Memahami arsitektur Emacs sebelum menyentuh shortcut akan menghemat puluhan jam kebingungan — karena hampir semua perilaku aneh Emacs bisa dijelaskan dari model ini.
Anggap Emacs sebagai kota kecil: ada buffer (bangunan isi), window (jendela yang melihat ke bangunan), mode (aturan main di tiap bangunan), dan hooks (pengumuman yang disiarkan kota saat sesuatu terjadi). Kalian tidak bisa mengerti perilaku kota tanpa peta jalannya. Inilah peta itu.
GNU Emacs mendefinisikan dirinya secara resmi sebagai "extensible, self-documenting real-time display editor":
| Pilar | Arti Praktis |
|---|---|
| Extensible | Semua behavior bisa ditambah/diubah lewat Emacs Lisp — bukan hanya fitur, tapi editor itu sendiri |
| Self-documenting | Setiap fungsi, variabel, dan binding terdokumentasi dan bisa dibaca dari dalam editor |
| Real-time display | Teks tampil dan diperbarui langsung saat kalian mengetik (bukan batch editor seperti ed/edlin) |
Filosofi ini membentuk segalanya: karena self-documenting, help system (C-h) bukan fitur tambahan melainkan bagian inti desain. Karena extensible, "package" Emacs tidak berbeda strukturnya dari core editor — keduanya sama-sama kode Lisp.
Konsep paling sentral: segala sesuatu yang kalian lihat di Emacs adalah buffer.
Buffer: *scratch* *Messages* *.emacs.d/init.el *Warnings* *Help*Bahkan window yang menampilkan help, hasil grep, daftar direktori, hingga minibuffer — semuanya buffer. Ini bedanya dengan editor modern yang membedakan "editor teks", "panel", "terminal", dan "output". Di Emacs, semuanya satu konsep: teks dalam buffer, dengan mode tertentu yang menentukan perilakunya.
Akibat praktisnya luar biasa: kalian bisa menyalin teks dari buffer hasil search ke buffer kode, menerapkan fungsi editing apa pun ke buffer apa pun, dan mengotomasi buffer non-file dengan Lisp.
Arsitektur visual Emacs punya tiga lapis:
Perbedaan penting yang sering membingungkan pendatang baru: menutup window tidak menghapus buffer. C-x 0 menutup window, buffer-nya tetap hidup di belakang. Episode 4 membedah ini lebih dalam.
Mode adalah cara Emacs menyesuaikan perilaku buffer terhadap jenis isinya.
Setiap buffer punya tepat satu major mode — aturan utama untuk buffer itu:
fundamental-mode — mode kosong, tanpa fitur bahasa.text-mode, markdown-mode — untuk dokumen.prog-mode dan turunannya (python-mode, go-ts-mode, elisp-mode) — untuk kode: indentation, syntax highlight, comment binding.dired-mode, org-mode, magit-status-mode — mode "aplikasi" yang mengubah buffer jadi aplikasi penuh.Sebaliknya, buffer bisa punya banyak minor mode sekaligus — fitur tambahan yang bisa diaktifkan berdampingan:
M-x auto-fill-mode ; bungkus baris otomatis
M-x display-line-numbers-mode ; nomor baris
M-x flymake-mode ; diagnosa lintingEpisode 7 membahas cara mengidentifikasi mode aktif dengan C-h m.
Dua mekanisme membuat Emacs ekstensible tanpa harus menulis ulang fungsi orang lain:
python-mode-hook dipanggil setiap kali buffer Python dibuka — kalian bisa menyisipkan fungsi sendiri di sana:(add-hook 'python-mode-hook
(lambda () (display-line-numbers-mode 1)))(defun my/log-open (orig file &rest args)
(message "Membuka file: %s" file)
(apply orig file args))
(advice-add 'find-file :around #'my/log-open)Hook untuk "bereaksi", advice untuk "mencegat". Kita praktekkan keduanya di episode 26.
Paket Emacs adalah kode Lisp yang didistribusikan. Dua archive utama:
| Archive | Isi |
|---|---|
| ELPA (GNU) | Paket resmi GNU, ada default; batasannya: kebijakan GNU — tidak boleh dependensi non-GPL |
| non-GNU ELPA | Paket GNU-friendly yang belum masuk archive utama |
| MELPA | Archive komunitas terbesar (ribuan paket), di-update tiap hari dari git |
Mekanisme instalasi, reflekshi signature keamanan, dan alternatif seperti straight.el dibahas tuntas di episode 11 dan 22.
Filosofi ini bukan teori — ia menjelaskan perilaku nyata:
C-h k menjelaskan semua shortcut? Karena self-documenting adalah desain inti, bukan fitur.Tip
Mulai sekarang, biasakan membaca pesan di minibuffer dan buffer *Messages* (C-h e). Emacs terus "bercerita" apa yang sedang terjadi — kebiasaan membaca ceritanya akan membuat kalian mahir jauh lebih cepat.
Pada episode 2 ini, kalian telah memetakan fondasi konseptual Emacs.
Inti yang harus dibawa pulang:
Di episode 3 selanjutnya, kita mulai praktik nyata: instalasi & first run — memastikan Emacs 30.2 terpasang di semua platform, menjalankan emacs -Q untuk bersih dari config lama, mengikuti tutorial C-h t, dan membaca mode line untuk pertama kali. Sampai jumpa di episode 3!