Emacs adalah teks editor yang telah menghipnotis banyak pengguna di seluruh dunia selama beberapa dekade (termasuk penulis 👋). Ia adalah sahabat setia bagi para pengembang perangkat lunak, programmer, peneliti (akademisi), atau siapa pun yang sering bergulat dengan penyuntingan teks (text editing). Jadi, jika kamu belum pernah mengenal Emacs sebelumnya, mari kita mulai petualangan ini!
![]() |
emacs - editor serba bisa |
Di dalam serial ini, kami akan memulai dari awal, memandu Anda melalui dasar-dasar penggunaan Emacs, hingga ke tingkat lanjut yang akan membuatmu bersemangat untuk menggali lebih dalam lagi. Kami akan berbicara tentang sejarah Emacs, cara menginstalnya, dan bagaimana memanfaatkan fitur-fitur canggihnya untuk meningkatkan produktivitas Anda.
Mungkin, bagi Anda yang belum pernah bersentuhan sama sekali dengan dunia text-mode, semua yang dijelaskan di sini terasa ribet ya, ndak ada klik sana klik sini, tapi yakinlah kalau Anda sudah terbiasa, memegang mouse itu sebenarnya pemborosan waktu yang luar biasa... hahaha... Siapkan jari kelingkingnya, karena nanti akan sering mencet tombol Ctrl sebelah kiri... 😆
Warning ahead... Tulisan ini mungkin akan sangat panjang (kurang
lebih 5000 kata), meskipun yang dijelaskan baru sebatas pengenalan, itu pun
belum semua. Juga... tulisan ini akan lebih mudah dinikmati dengan device
laptop atau tablet, kalau dipaksa pake layar kecil (smartphone), jadinya
akan kurang nyaman.
Berikut ini adalah struktur dari tulisan ini, silakan lompat ke bagian yang Anda inginkan kapan saja:
3. Antarmuka Pengguna (User Interface) Emacs
5. Mode dan Fungsionalitas Tambahan
6. Penggunaan Ekstensi (packages) dalam Emacs
- Mengkonfigurasi Emacs
- Pengaturan Theme dan Tampilan
- Membuat Pintasan (Shortcut) Pribadi
- Membuat Fungsi Emacs Kustom
- Menyimpan dan Berbagi Konfigurasi Emacs
9. Penutup
11. Daftar Pustaka
Kesepakatan Penulisan
Sebelum kita mulai, mari kita buat kesepakatan terlebih dahulu, biar
tutorial ini lebih mudah dipahami. Bahwa di Emacs memang ada berbagai cara
mengoperasi key binding, ada yang harus ditekan bersamaan, ada yang cukup
ditekan tanpa kombinasi tombol Ctrl. Tabel berikut ini sebagai panduan awal
agar Anda tidak bingung membaca tutorial ini nantinya.
Tanda | Keterangan |
C |
Tombol Ctrl |
M |
Tombol Alt |
S |
Tombol Shift |
- |
Tanda hubung, artinya ditekan bersamaan (tanpa dilepas) |
Ret |
Tombol Enter |
C-x |
Tekan Ctrl jangan dilepas kemudian tekan tombol x sekali |
C-x C-f |
Tekan Ctrl, tahan, tekan tombol x sekali, (Ctrl masih ditahan), kemudian tekan tombol f sekali |
C-x r l |
Tekan Ctrl, tahan, tekan tombol x sekali, lepas semua, tekan r, lepas, kemudian tekan l, trus lepas |
Selalu perhatikan mini buffer ya... karena ada keterangan di sana kita baru ngapain |
Maafkan sebelumnya kalau ada salah penulisan atau kurang jelas atau kurang
lengkap, atau model penulisan yang tidak konsisten, tulisan ini akan saya coba
update terus...
Okay.... mari kita mulai....
Pengenalan tentang Emacs
Emacs adalah salah satu dari teks editor yang paling handal dan sangat disukai oleh para pengembang perangkat lunak, programmer, peneliti, dan pengguna yang menginginkan alat pengeditan teks yang fleksibel dan ringan. Emacs telah ada selama beberapa dekade dan memiliki sejarah yang panjang. Dalam bab ini, kita akan membahas beberapa konsep dasar tentang Emacs untuk memberi Anda pemahaman yang lebih baik tentang mengapa editor ini sangat penting dalam dunia text editing.
Sejarah Singkat Emacs
Emacs pertama kali dikembangkan oleh Richard Stallman pada tahun 1976 di
Laboratorium Kecerdasan Buatan MIT. Nama "Emacs" adalah singkatan dari "Editor
MACroS." Salah satu fitur paling menarik dari Emacs adalah kemampuannya untuk
disesuaikan dan diperluas dengan ekstensi (packages), sehingga memungkinkan
penggunanya untuk melakukan hampir semua jenis tugas pengeditan teks (yang
kompleks) dan bahkan bisa lebih dari itu. Emacs bisa digunakan untuk web
browsing (text mode), email client, putar lagu, bermain game seperti tetris,
dan banyak hal lagi.
Emacs dibuat menggunakan bahasa pemrograman Lisp, sehingga apabila
nanti kita ingin meng-kustomisasi lebih jauh, sedikit banyak harus belajar
bahasa ini. Tapi meskipun menggunakan mode standar pun masih cukup
powerful kok...
Mengapa Emacs Penting
Ada beberapa alasan mengapa Emacs menjadi pilihan utama bagi banyak pengembang perangkat lunak:
- Mudah dikustomisasi: Anda dapat mengkonfigurasi Emacs sesuai dengan preferensi Anda, membuat shortcut pribadi, dan menyesuaikan tampilan editor dengan mudah.
- Dukungan untuk Banyak Mode: Emacs memiliki mode khusus untuk berbagai bahasa pemrograman dan tugas khusus, yang membantu meningkatkan produktivitas Anda saat bekerja pada proyek-proyek berbeda.
- Penggunaan Keyboard: Emacs sepenuhnya dioptimalkan untuk penggunaan keyboard, yang memungkinkan Anda bekerja lebih cepat tanpa perlu menggunakan mouse.
- Ekosistem Packages: Ada ribuan ekstensi (package) yang tersedia untuk Emacs yang dapat meningkatkan fungsionalitasnya secara drastis.
Pendapat saya pribadi, menguasai text editor berbasis text seperti Vim atau Emacs ini rasanya cukup penting, apalagi kalau Anda bekerja dengan remote server (via ssh) misalnya, yang biasanya berbasis text, mau ndak mau kalau mau setup atau ubah konfigurasi harus menggunakan text editor berbasis text mode.
Emacs sendiri bisa dijalankan dalam GUI maupun text mode. Dalam tutorial ini
disarankan menggunakan yang versi GUI agar lebih mudah diikuti. Kalau sudah
mulai mahir, nanti bisalah mencoba yang versi non GUI.
Dengan pemahaman awal tentang Emacs ini, mari mulai dengan instalasi dan mengenal antarmuka pengguna untuk memahami dasar-dasar penggunaannya.
Menginstall Emacs
Emacs dapat diinstal di berbagai sistem operasi, berikut ini cara install pada beberapa sistem operasi yang sering digunakan.
1. Linux (Ubuntu)
Untuk Ubuntu dan beberapa varian distro Debian lainnya:
sudo apt update
sudo apt install emacs
Setelah itu kita dapat membuka Emacs dengan mengetikkan perintah emacs
di Terminal atau Anda dapat mencarinya dalam menu aplikasi. Oh iya, penulis
sendiri menggunakan sistem operasi Ubuntu 22.04.3 LTS.
2. Mac OS
Untuk macOS, Anda dapat menggunakan package manager Homebrew untuk menginstal Emacs. Jika belum memiliki Homebrew, silakan install dulu dengan menggunakan perintah berikut:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
Kemudian, instal Emacs dengan perintah:
brew install emacs
Setelah selesai, Emacs akan terinstal di macOS Anda. Selanjutnya buka dengan
menjalan perintah emacs
di terminal.
Note: bagian ini tidak terverifikasi ke-sahih-annya ya... karena penulis tidak memiliki Mac.
3. Windows
Untuk sistem operasi Windows, Anda dapat mengunduh Emacs installer dari situs resmi Emacs di https://www.gnu.org/software/emacs/download.html.
Pilih versi terbaru dan unduh install yang sesuai dengan arsitektur komputer Anda (32-bit atau 64-bit).
Jalankan installer yang sudah diunduh, dan ikuti langkah-langkah instalasi yang ditampilkan pada layar.
Setelah selesai, Anda dapat membuka Emacs dari menu Start (Win) atau dengan mencarinya di pencarian Windows.
Antarmuka Pengguna Emacs
Emacs memiliki beragam elemen utama yang memberikan fleksibilitas dalam penyuntingan teks dan untuk fungsi navigasi. Memahami elemen-elemen ini akan membantu Anda dalam menggunakan Emacs dengan lebih efisien.
1. Buffer
![]() |
tampilan buffer emacs |
Buffer adalah area kerja utama di Emacs. Setiap buffer dapat berisi teks dari berkas yang berbeda. Kamu dapat membuka banyak buffer sekaligus. Buffer yang aktif ditampilkan di jendela utama Emacs.
Definisi pribadi saya, buffer ini mirip tab kalau di editor lain, meskipun mungkin sifatnya agak berbeda. Kita dapat berpindah antar buffer, atau bahkan memecah layar secara horisontal atau vertikal, dengan masing² bagian menampilkan buffer yang berbeda. Dalam tulisan lain mungkin akan penulis jelaskan tersendiri.
Secara default, setiap kali kita membuka Emacs, maka buffer yang tampil
adalah seperti yang kita lihat di skrinsut di atas. Kita sebenarnya dapat
meng-custom buffer mana yang akan kita pilih setiap kali kita menjalankan
Emacs.
Selain buffer, Emacs memiliki yang namanya Frame, kalau kita menyebutnya windows, biar tidak bingung, pembahasan ini akan dipisah saja dalam tulisan lain.
2. Mode
![]() |
tampilan emacs mode python |
Mode adalah aspek penting dari Emacs yang memungkinkan pengguna
untuk mengedit teks dengan cara yang lebih efisien tergantung pada jenis
kontennya. Beberapa mode umum dalam Emacs termasuk mode Text, mode Program,
mode Markdown, mode HTML, mode CSS, dan banyak lagi. Mode dapat diubah dengan
perintah tertentu untuk menyediakan fitur khusus sesuai dengan kebutuhan saat
itu.
Bahkan di Emacs terdapat bash mode dan ssh mode, apa itu? Nanti akan kita
bahas dalam tulisan terpisah. Sabar ya...
3. Mini Buffer
![]() |
tampilan mini buffer emacs |
Mini buffer adalah area kecil di bagian bawah layar yang digunakan sebagai jendela informasi untuk setiap perintah yang kita jalankan. Ini adalah tempat di mana Emacs mengkomunikasikan detil informasi kepada pengguna. Dalam gambar di atas, saya mengetikkan perintah C-x C-f, kemudian tekan tombol Tab untuk melihat semua berkas yang ada di dalam direktori app/. Ini adalah salah satu mini buffer yang sering digunakan untuk pencarian berkas (mirip windows explorer kalo di Windows).
C-g |
Membatalkan perintah |
Untuk mengembalikan lagi, atau menutup mini buffer, tekan C-g beberapa kali sampai mini buffer yang ada di bawah window menghilang.
4. Bilah Menu (Menu Bar)
![]() |
tampilan menu bar di emacs |
Bilah menu berisi berbagai opsi dan perintah yang tersedia di Emacs. Di
sini, kamu dapat menemukan perintah untuk membuka berkas, menyimpan, mencari,
menggantikan, dan lainnya. Saya tidak terlalu tertarik dengan menu bar ini,
karena saya sering bekerja dalam sistem no-window (non-GUI), dan ketika
bekerja dalam mode no-windows, menu bar ini jarang bahkan ndak pernah saya
pakai, dan masih bisa kita gantikan dengan menekan M-x.
M-x |
Tanda M atau Meta diakses dengan menekan tombol Alt |
Untuk menjalankan emacs dalam sistem non-GUI, tambahkan parameter -nw
(no-window) ketika menjalankan emacs:
emacs -nw |
Menjalankan Emacs dalam mode -no-window |
Dan berikut ini tangkapan layar Emacs dalam sistem non-GUI.
![]() |
tampilan emacs dalam no-window system |
5. Bilah Status (Status Bar)
![]() |
tampilan status bar di emacs |
Bilah status terletak di bagian bawah jendela Emacs dan memberikan
informasi tentang status buffer yang aktif. Ini mencakup baris dan kolom
kursor, mode buffer, dan informasi lain yang berguna.
Status bar ini salah satu bagian penting dalam Emacs, mungkin akan saya
jelaskan lebih jauh dalam tulisan lain.
6. Shortcut dan Key Binding
Emacs sangat terkenal karena menggunakan keyboard sebagai alat utama untuk berinteraksi. Terdapat banyak shortcut dan key binding yang dapat mempercepat pekerjaanmu. Beberapa shortcut dasar yang berguna antara lain:
Command | Keterangan |
C-x C-f |
Membuka berkas |
C-x C-S |
Menyimpan berkas |
C-x C-c |
Keluar dari Emacs |
Cara penggunaannya, tekan tombol Ctrl, jangan dilepas, kemudian tekan tombol X, lepas kemudian tekan lagi tombol S. Mungkin agak aneh bagi pengguna awam, tapi yang namanya belajar, pasti awalnya semua terasa aneh kan... hehehehe....
Selain itu, Anda dapat membuat shortcut kustom sesuai dengan kebutuhan personal Anda.
Dengan pemahaman tentang antarmuka pengguna Emacs ini, Anda akan dapat mengelola berkas dan teks dengan lebih baik. Selanjutnya, kita akan membahas lebih banyak tentang pengeditan teks dan fungsionalitas tambahan yang ditawarkan oleh Emacs.
Memulai Emacs
Membuka dan Menyimpan Berkas
Membuka Berkas Baru
Jalankan Emacs kemudian tekan
C-x C-f |
Membuat/membuka berkas baru |
kemudian ketikkan nama file yang ingin Anda buat, misal
tutorial.emacs.txt
.
![]() |
tampilan mini buffer Emacs ketika membuka berkas baru |
Setelah itu tekan Enter, dan berikut ini contoh tangkapan layarnya:
![]() |
membuka berkas baru di Emacs |
Membuka berkas yang sudah ada
Anggap saja kita memiliki berkas yang sudah kita beri nama
tutorial.emacs.txt
yang berada di direktori home kita. Silakan run Emacs masing-masing dan mari
kita buka berkas tersebut dengan perintah:
C-x C-f |
Membuat/membuka file baru |
Perintah ini akan membuka mini buffer di bagian bawah layar, selanjutnya
ketikkan nama berkas tersebut, kemudian tekan Enter
.
Menyimpan Berkas
Untuk menyimpan berkas, ketikkan perintah
C-x C-s |
Menyimpan berkas |
Jika ini adalah penyimpanan pertama kali, Emacs akan meminta nama berkas.
Ketikkan nama berkas kemudian tekan Enter
. Jika berkas sudah
dibuat sebelumnya, penyimpanan akan dilakukan ke nama berkas yang sudah ada
tanpa konfirmasi tambahan.
Menyimpan Berkas dengan Nama Baru (Save As)
Jika Anda ingin menyimpan berkas dengan nama baru, ketikkan perintah
C-x C-w |
Menyimpan dengan nama baru (save as) |
Ini akan membuka mini buffer, dan Anda diminta mengetikkan nama
berkas baru. Tekan Enter
untuk menyimpan berkas dengan nama
baru.
Selain menggunakan cara di atas, kita sebenarnya bisa juga menggunakan menu bar yang ada, namun sekali lagi perlu diingat, kalau kita ingin mendayagunakan Emacs, sebaiknya pelan-pelan singkirkan mouse itu, ganti dengan perintah melalui keyboard.
Navigasi dalam teks
Navigasi dasar dalam Emacs adalah kunci untuk bergerak dengan cepat dalam teks dan buffer. Berikut adalah beberapa perintah navigasi dasar yang berguna:
Navigasi dasar
Command | Keterangan |
C-f |
Perintah ini digunakan untuk maju satu karakter ke depan. Ini sering digunakan untuk menggeser kursor ke kanan. |
C-b |
Perintah ini digunakan untuk mundur satu karakter. Ini membantu Anda untuk menggeser kursor ke kiri. |
M-f |
Perintah ini digunakan untuk maju satu kata ke depan. Ini memindahkan kursor ke awal kata berikutnya. |
M-b |
Perintah ini digunakan untuk mundur satu kata. Ini memindahkan kursor ke awal kata sebelumnya. |
C-v |
Perintah ini digunakan untuk maju ke bawah dalam teks sejauh satu layar penuh (menggulung ke bawah). |
M-v |
Perintah ini digunakan untuk mundur ke atas dalam teks sejauh satu layar penuh (menggulung ke atas). |
C-n |
Perintah ini digunakan untuk bergerak turun satu baris. |
C-p |
Perintah ini digunakan untuk bergerak naik satu baris. |
C-a |
Perintah ini digunakan untuk bergerak ke awal baris. |
C-e |
Perintah ini digunakan untuk bergerak ke akhir baris. |
Navigasi dengan memanfaatkan fitur search
Selain beberapa kombinasi tombol di atas, kita dapat melakukan navigasi
cepat dengan cara melakukan pencarian terhadap kata yang akan kita sunting.
Caranya adalah dengan menekan C-s
, ketik kata yang ingin kita
cari (dalam hal ini kata and
, kemudian tekan
Enter
. Apabila ada beberapa kata yang sama, dan yang kita
inginkan adalah beberapa kata di depan, maka tekan saja
C-s
beberapa kali sampai kursor bergerak ke kata yang kita
inginkan.
C-s |
Mencari kata maju (forward-mode) |
ikuti dengan mengetik kata yang ingin dicari |
Selalu perhatikan bagian mini buffer dan status bar ya, karena di sana kita akan dapat keterangan tambahan terhadap perintah yang kita jalankan.
Anda dapat menekan C-s
secara berulang sampai menemukan kata
yang ingin Anda cari.
Misal kita punya teks berikut:
Lorem Ipsum is simply dummy text of the printing and typesetting industry.
Lorem Ipsum has been the industry's standard dummy text ever since the 1500s,
when an unknown printer took a galley of type and scrambled it to
make a type specimen book. It has survived not only five centuries,
but also the leap into electronic typesetting, remaining essentially
unchanged. It was popularised in the 1960s with the release of
Letraset sheets containing Lorem Ipsum passages, and more recently
with desktop publishing software like Aldus PageMaker including
versions of Lorem Ipsum.
Kita ingin mencari kata and
yang kedua, maka langkah-langkahnya
adalah sebagai berikut:
Command | Keterangan |
C-p beberapa kali |
Bergerak ke baris paling atas |
C-a |
Menuju ke awal baris |
C-s |
Memulai pencarian maju |
Ketikkan kata yang ingin kita cari (perhatikan status bar) | |
C-s |
Maju ke kata and yang kedua |
Enter |
Mengakhiri pencarian, otomatis kursor akan berada di akhir kata yang kita cari. |
Pengeditan Teks Dasar
Memotong, Menyalin dan Menyisipkan Teks
Options > Customize Emacs > Custom Themes
. Tinggal pilih
menggunakan mouse aja ya biar lebih mudah, meskipun sebenarnya bisa dengan
navigasi melalui keyboard juga... Tapi untuk saat ini dikit² boleh lah pake
mouse... 😊
![]() |
cara mengganti theme di emacs |
Tujuan penggantian theme ini agar pengguna awam tidak bingung, karena kalau menggunakan theme dasar, kata yang disorot tidak ada penandanya (warna lain). Kalau menggunakan theme lain, biasanya ada warna yang berbeda terhadap kata yang kita sorot. Mari kita langsung praktik saja agar tidak bingung.
Misal, kita ingin menyalin kata printer
, maka seperti cara
pencarian di atas, kita lakukan pencarian dengan menekan
C-s
diikuti dengan kata printer
, ikuti dengan
menekan Enter
. Kursor saat ini berada tepat di akhir kata
printer, selanjutnya kita tekan:
Command | Keterangan |
C-Space |
Memulai untuk menyorot |
M-b |
Memindahkan kursor ke belakang 1 kata |
M-w |
Menyalin bagian yang sedang disorot ke clipboard. |
Berikut ini tangkapan layarnya
![]() |
menyorot teks di emacs |
Sekarang kita sudah memiliki kata printer di clipboard, kalau kita ingin menyisipkan (paste) kata tersebut di awal paragraf (misalnya), tekan navigasi berikut:
Command | Keterangan |
C-p |
Naik 1 baris (tekan beberapa kali, sampai kursor berada di baris paling atas) |
C-a |
Menuju awal baris |
C-y |
Menyisipkan teks yang sudah kita salin sebelumnya. |
Navigasi ini sebenarnya sifatnya opsional, di emacs kita masih bisa
menggunakan tombol arrow (panah), bahkan mouse ketika sedang berada di
GUI.
Selain menyalin (copy), kita juga bisa memotong (cut) teks, caranya seperti
dengan yang di atas, bedanya perintah M-w
kita ganti dengan
C-w
.
Command | Keterangan |
M-w |
Copy |
C-w |
Cut |
C-y |
Paste |
Semoga berhasil ya... kalau masih bingung, ulangi pelan-pelan... :)
Menggunakan Undo dan Redo
Berikut ini adalah perintah untuk melakukan Undo dan Redo di Emacs.
Command | Keterangan |
C-_ |
Undo |
C-g C-_ |
Redo |
_
yang dimaksud adalah underscore, jadi menekannya harus
menggunakan kombinasi tombol Shift
, berarti kita tekan tombol
Ctrl, tahan tekan lagi tombol Shift, kemudian tekan _
. Silakan
coba untuk di explore sendiri ya....
Mencari dan Menggantikan Teks
Untuk mencari dan mengganti teks secara manual dengan konfirmasi, lakukan cara berikut:
Command | Keterangan |
M-S-5 |
ketik kata yang ingin dicari (perhatikan status bar) |
Tekan enter | |
Isi dengan kata pengganti (perhatikan status bar) | |
Tekan enter lagi | |
Tekan y untuk Yes, atau tekan n untuk No
(tidak mengganti) (manual replace)
|
|
atau jika ingin replace all, tekan ! |
Atau kita juga bisa melakukan find and replace tanpa perlu konfirmasi satu
persatu. Caranya adalah dengan menekan !
untuk melakukan
replace ke semua kata yang ada di teks.
Mode dan Fungsionalitas Tambahan
Emacs memiliki kemampuan yang luar biasa untuk beradaptasi dengan berbagai jenis konten dan pekerjaan. Hal ini dicapai melalui penggunaan mode dan fungsionalitas tambahan. Mari kita bahas lebih lanjut:
Mode Text
Ini adalah mode default di Emacs. Mode ini digunakan untuk mengedit teks biasa dan menyediakan berbagai alat pengeditan dasar. Mode ini udah pernah kita lihat ketika kita membuka Emacs pertama kali.
Mode Programming
Emacs memiliki mode khusus untuk berbagai bahasa pemrograman seperti Python, C++, Java, dan banyak lagi. Mode ini memberikan penyorotan sintaksis, tautan cepat, dan fitur-fitur lain yang berguna saat menulis kode (coding). Mode ini udah saya contohkan dalam tangkapan layar di atas (python mode).
Mode Markdown
Salah satu mode favorit, soalnya ketika menulis code, kita butuh dokumentasi yang biasanya dalam format md (markdown). Mode ini cocok untuk mengedit berkas Markdown. Emacs akan memberikan penyorotan sintaksis yang membantu dalam menulis dokumen Markdown dengan benar. Lebih lanjut, jika diperlukan Emacs bisa meng-export berkas md ini menjadi berkas HTML.
![]() |
emacs dalam mode markdown |
Mode Org
Mode Org memungkinkan kamu membuat dokumen struktural dengan cepat, termasuk membuat todo-list, jadwal, dan bahkan presentasi. Mode ini sering digunakan oleh para penulis, akademisi dan aktivitas-aktivitas yang berbasis jadwal (project based).
![]() |
emacs org mode doin some todo list |
Ini termasuk mode favorit juga, dulu saya sering pake buat nulis dokumentasi, kemudian saya export ke HTML untuk di upload ke web, atau export ke PDF buat di share ke rekan-rekan. Mode ini juga dikenal dengan kemampuannya dalam mengorganisir todo list dan lebih besar lagi dalam skala proyek.
![]() |
contoh emacs org-mode membuat table |
Silakan menuju tautan https://orgmode.org/ untuk mengetahui lebih lanjut. Mungkin lain waktu akan kita bahas lebih lanjut dalam tulisan lain.
Mode dired
dired mode adalah salah satu mode yang memungkinkan kita berintaksi dengan berkas atau direktori, padanannya seperti file explorer kalau di sistem GUI. Dengan mode ini kita dapat dengan mudah copy, paste, rename, baik individu maupun secara bersamaan (bulk).
Berikut ini tampilan dari mode dired dalam emacs:
![]() |
emacs dired mode |
Untuk melakukan navigasi, kita bisa gunakan tombol panah, atau C-n
, C-p
,
Enter
.
Penggunaan Ekstensi (packages) dalam Emacs
Kalau Anda familiar dengan sistem operasi Linux, bayangkan ekstensi ini seperti package yang diorganisir dalam sebuah repo, kita bisa memilih paket tambahan yang ingin kita pasang di Emacs. Kita juga bisa menambahkan daftar repo ke dalam Emacs untuk menjangkau ekstensi lain yang mungkin tidak tersedia di repo bawaan.
Menginstall Ekstensi
Untuk melihat daftar ekstensi yang tersedia dalam repo default, lakukan perintah berikut:
M-x package-list-packages |
Melihat paket yang tersedia di repo |
Dan berikut ini tangkapan layarnya:
![]() |
daftar ekstensi yang tersedia di repo |
Setelah muncul daftar ekstensi ini, kita bisa melakukan search dengan cara
seperti yang sudah ditulis di atas (C-s
), kalau sudah ketemu tekan saja i
(install) kemudian tekan x
(execute), nanti di mini buffer muncul pertanyaan
konfirmasi apakah benar kita mau install ekstensi tersebut.
Command | Keterangan |
C-s |
Search dalam repo |
i |
Menandai package yang akan di-install |
x |
Eksekusi install |
Contoh ekstensi yang sering dipakai
Sebenarnya hal ini tidak patokan khusus sih, semuanya kembali ke preferensi masing-masing. Ada yang mungkin lebih banyak menggunakan emacs untuk coding python, maka install ekstensi yang mendukung untuk itu, atau mungkin ada yang sering menggunakan org-mode, maka carilah ekstensi yang mendukung untuk produktivitas bekerja di org-mode atau Anda sering melakukan operasi git? install package magit, dan lain sebagainya.
Cara taunya gimana kalau ekstensi ini yang kita butuhkan? Googling aja atau dalam daftar repo di atas ada keterangan singkatnya, coba aja install, kalau cocok lanjutkan kalau ndak cocok ya hapus, as simple as that... Untuk paket atau ekstensi yang sudah pernah kita install nanti ada keterangan installed ketika kita melakukan command M-x package-list-packages dan search paket tersebut. Seperti dalam tangkapan layar berikut ini:
![]() |
contoh paket yang sudah terinstall |
Kustomisasi Emacs
Melakukan kustomisasi adalah salah satu langkah penting bagi pengguna Emacs, kenapa? Karena dengan mengkonfigurasi Emacs sesuai preferensi Anda, Anda dapat menciptakan sebuah lingkungan kerja yang nyaman dan efisien. Sebagai langkah awal, berikut ini beberapa hal yang penting untuk dikenal sebelum melakukan konfigurasi secara lebih jauh.
Mengkonfigurasi Emacs
Ingat bahwa Emacs adalah software open source, artinya hampir di semua bagiannya dapat kita custom sesuai dengan keinginan kita. Apa aja? Mulai dari yang sifatnya dasar misalnya tampilan, membuat pintasan pribadi, penambahan packages sesuai kebutuhan, bahkan kita dapat membuat fungsi sendiri menggunakan bahasa pemrograman Lisp untuk memenuhi kebutuhan kita. Mari kita pelajari satu per satu...
Istilahnya kustomisasi atau konfigurasi, tapi praktiknya kita nanti akan banyak bersentuhan dengan file .emacs yang ada di direktori home kalian masing-masing. Mau menambahkan repo, mau mengubah default theme, menambahkan key binding, membuat fungsi, dan lain sebagainya, semua dilakukan melalui penyuntingan file .emacs.
Pengaturan Theme dan Tampilan
Hal ini sudah kita singgung di bagian atas, bahwa kita dapat mengubah theme
dasar dengan theme bawaan lain yang sudah disertakan. Tinggal coba aja mana
yang sekiranya cocok. Selain theme bawaan, kita dapat menambahkan theme
sendiri, mari kita gunakan cara lain untuk install, yakni dengan menambahkan
repo Melpa
terlebih dahulu.
~/.emacs
(sesuaikan dengan sistem operasi
masing-masing), kemudian tambahkan baris berikut:
(require 'package)
(add-to-list 'package-archives '("melpa" . "https://melpa.org/packages/") t)
;; Comment/uncomment this line to enable MELPA Stable if desired. See `package-archive-priorities`
;; and `package-pinned-packages`. Most users will not need or want to do this.
;;(add-to-list 'package-archives '("melpa-stable" . "https://stable.melpa.org/packages/") t)
(package-initialize)
Kemudian quit dari emacs dan jalankan lagi. silakan jalankan perintah berikut
di emacs
Command | Keterangan |
M-x package-list-packages |
Melihat daftar package dalam semua repo (bawaan + tambahan) |
C-s
diikuti dengan mengetik
zenburn
, sampai beberapa kali sampai ketemu dengan package yang
bernama zenburn-theme
.
![]() |
emacs install theme zenburn via repo Melpa |
Berkas .emacs yang barusan kita edit itu adalah berkas utama dalam melakukan konfigurasi emacs selanjutnya. Segala hal yang sifatnya custom nanti akan kita tambahkan dalam .emacs. Berikut ini adalah contoh .emacs saya untuk menghilangkan menu bar, dan beberapa setting lain:
Note: baru sadar kalau .emacs saya umurnya udah lebih dari 9 tahun, kalau ada yang ndak work, tolong di-update sendiri ya... soalnya, akhir-akhir ini jarang coding, jadi jarang juga sentuh emacs.
;-------------------------;
;;; User Interface ;;;
;-------------------------;
;; No splash screen ...
(setq inhibit-startup-message t)
;; Disable menubar
(menu-bar-mode -1)
;; Disable toolbar
(tool-bar-mode -1)
;; Disable scrollbar
(scroll-bar-mode -1)
;; always use spaces, not tabs, when indenting
(setq indent-tabs-mode nil)
;; require final newlines in files when they are saved
(setq require-final-newline t)
Silakan tambahkan setting tersebut ke dalam .emacs
Anda, kalau
sekiranya cocok silakan pakai, kalau semisal ndak cocok, ya tinggal hapus
aja dari .emacs
Anda.
Membuat Pintasan (Shortcut) Pribadi
Sama dengan sebelumnya, untuk membuat pintasan pribadi, kita custom lagi
.emacs
kita. Berikut ini contoh .emacs
saya
terkait dengan pintasan pribadi.
;-------------------------;
;;; Custom Key Bindings ;;;
;-------------------------;
(global-set-key (kbd "C-;") 'comment-or-uncomment-region)
(global-set-key (kbd "M-/") 'hippie-expand)
(global-set-key (kbd "C-x g") 'magit-status)
;; make cursor movement keys under right hand's home-row
(global-set-key (kbd "M-i") 'previous-line)
(global-set-key (kbd "M-k") 'next-line)
(global-set-key (kbd "M-j") 'backward-char)
(global-set-key (kbd "M-l") 'forward-char)
Silakan tebak kira-kira maksud dari baris-baris konfigurasi tersebut apa?
Membuat Fungsi Emacs Kustom
Saya dulu pernah membuat fungsi sendiri untuk mempercepat proses kerja saya,
namun saya cari lagi udah ndak ada di .emacs
. Ya buat contoh
kali ini, kita buat fungsi sederhana hello world
aja ya, nanti
silakan dikembangkan sendiri sesuai kebutuhan.
Mari kita tambahkan baris berikut di .emacs
(defun helloo ()
(interactive)
(message "Hello World!"))
Simpan, kemudian keluar dari emacs dan jalankan lagi emacs nya, kemudian
jalankan perintah M-x helloo
tekan Enter, kemudian di mini
buffer akan keluar Hello World!
. Gimana seru bukan?
bukaaaaaann....
Menyimpan dan Berbagi Konfigurasi Emacs
Inilah serunya di komunitas pengguna Emacs, mereka aktif dan saling berbagi
.emacs
mereka dengan pengguna lain, sehingga Emacs seperti ndak
pernah mati, pasti ada aja konfigurasi baru yang di-share oleh pengguna
lain, kemudian ditanggapi dan bahkan dipakai untuk disempurnakan atau
dimodifikasi lagi sesuai preferensi masing-masing.
Productivity Tips
Alhamdulillah... masuk ke bagian akhir dari tulisan
panjang ini.... saatnya kita bicara produktivitas. Sedikit
sharing tentang emacs, bahwa beberapa fitur yang saya secara pribadi suka
dari emacs adalah navigasi cepat menggunakan search (C-s C-r
),
paling C-f
, C-b
, M-f
,
M-b
, C-a
, C-e
, intinya navigasi
standar lah....
Kombinasi di atas juga saya pakai ketika berhadapan dengan console
(terminal), karena by default console di Linux itu menggunakan emacs untuk
navigasi, coba aja... C-p
untuk lihat command sebelumnya,
C-a
menuju awal baris, C-g
untuk membatalkan
perintah, M-b
mundur satu kata, M-f
maju satu kata
dan seterusnya.
Fitur berikutnya yang saya kadang pakai adalah yang akan
kita bahas ini, macros! Intinya ini merekam aktivitas kita kemudian kita
ulang sesuai kebutuhan kita. Untuk lebih jelasnya pakai contoh aja ya....
Penggunaan Macros untuk Otomatisasi
Misal kita memiliki teks seperti berikut:
<a href="https://www.yogya.org/2005/09/kamus-boso-walikan-jogja.html">kamus boso walikan jogja</a>
<a href="https://www.yogya.org/2010/07/wisata-sleman.html">wisata sleman</a>
<a href="https://www.yogya.org/2010/07/wisata-jogja.html">wisata kota jogja</a>
<a href="https://www.yogya.org/2010/07/wisata-bantul.html">wisata bantul</a>
<a href="https://www.yogya.org/2010/07/wisata-kulon-progo.html">wisata kulon progo</a>
<a href="https://www.yogya.org/2010/07/wisata-gunung-kidul.html">wisata gunungkidul</a>
<a href="https://www.yogya.org/2015/03/sejarah-wisdom-park-ugm.html">sejarah wisdom park ugm</a>
<a href="https://www.yogya.org/2022/05/tentang-jogja.html">tentang jogja</a>
<a href="https://www.yogya.org/2023/09/julukan-kota-jogja.html">julukan kota jogja</a>
<a href="https://www.yogya.org/2023/09/contoh-itinerary-jogja-3-hari-2-malam.html">itinerary jogja 3 hari 2 malam</a>
Kemudian kita ingin menghilangkan tag HTML dan menyisakan teks nya saja (yang didalam a href). Mungkin Anda berpikir, ah ini bisa pakai regex... iya bisa sih... tapi kali ini saya akan tunjukkan caranya menyelesaikan masalah ini menggunakan macro di emacs.... bersiaplah!
By default, untuk memulai macro di Emacs menggunakan tombol F3
, dan
mengakhiri dengan F4
. untuk mengulang, tekan F4
lagi sebanyak kebutuhan,
atau bisa juga, misal kita ingin ulang 9 kali maka, tekan C-u 9 F4
.
Command | Keterangan |
F3 |
Memulai macro |
C-p |
Tekan beberapa kali sampai kursor berada di baris paling atas |
C-a |
Menuju ke awal baris |
C-space |
Memulai mode sorot |
C-s |
Memulai mode search |
"> |
kita mencari simbol "> |
Enter |
Menghentikan pencarian |
Delete |
Tekan tombol delete untuk menghilangkan teks yang sudah disorot |
C-s |
Melakukan pencarian lagi |
</ |
Mencari simbol </ |
Enter |
Menghentikan pencarian |
C-b 2x |
Mundur (backward) 2 karakter |
C-space |
Memulai penyorotan teks |
C-e |
Menuju akhir baris |
Delete |
Hapus teks yang disorot |
C-n |
Menujur baris berikutnya |
F4 |
Menyelesaikan macro |
Gimana? bisa? Kalau belum berhasil silakan ulang pelan-pelan ya pak sopir
Kalau sudah berhasil, waktunya kita jalankan ulang keyboard macro yang sudah kita rekam sebelumnya. Caranya
Command | Keterangan |
F4 |
Mengulang macro 1 kali |
Atau bisa juga kita ulang berapa kali (sesuai kebutuhan)
Command | Keterangan |
C-u 5 F4 |
Mengulang macro sebanyak 5 kali |
Cukup ya... untuk sementara demo untuk fungsi macro di Emacs... nanti silakan lanjut sendiri ke materi macro yang lebih dalam, misal menyimpan macro, atau bahkan menulis macro di fungsi tersendiri di .emacs Anda?
why not? possibility is limitless!
Penggunaan Markah (bookmark) untuk Navigasi Cepat
Nah... ini bagian paling terakhir dari serial ini. Anda kalau terbiasa menggunakan vscode, setelah quit kemudian Anda matikan komputer, besok ketika buka vscode lagi, project yang terakhir Anda kerjakan akan terbuka secara otomatis. Kurang lebih begitulah prinsip bookmark.
Berikut ini 2 kombinasi tombol utama untuk set and get bookmark di Emacs.
Command | Keterangan |
C-x r m Enter |
Set bookmark |
C-x r l |
Melihat semua file yang sudah kita bookmark sebelumnya. |
![]() |
emacs bookmark list |
Bookmark ini sifatnya persistent ya... meskipun Anda tutup Emacs, tidak akan
hilang. Sebagai catatan, kalau Anda pengguna aktif Emacs, perintah untuk
melihat daftar bookmark (C-x r l
) ini adalah salah satu
perintah pertama yang harus Anda hapal!
Penutup
Sebagai penutup serial tulisan ini, penulis ingin menyampaikan bahwa sebenarnya konsep yang diusung text editor modern sekarang, seperti vscode dengan berbagai dukungan package nya itu, udah dimulai di Emacs puluhan tahun lalu. Meskipun, keduanya tidak bisa disandingkan apalagi dibandingkan karena memang mengusung idealisme yang berbeda.
Saya pribadi, sebagai pengguna, tinggal menikmati, bosen itu ganti yang ini, tidak usah mem-banding²-kan apalagi sampai mencaci....
Text Editor bisa datang silih berganti, tapi emacs tetap di hati... 😄
Referensi Lebih Lanjut
- Konsep Frame, Buffer, dan Windows dalam Emacs
- Navigasi di Emacs bagian 2
- Mengenal scratch buffer di Emacs - bagian 2
- Mengenal status bar di Emacs
- Bekerja dengan dired-mode
- Bekerja dengan org mode
- Menjalankan shell dari dalam Emacs
- Belajar rectangle mark mode di Emacs
- Pencarian dengan regex
Melakukan ssh dari dalam EmacsBeberapa packages yang menarik
Daftar Pustaka
Artikel ini sebenarnya bentuk lain dari tulisan saya sebelumnya tentang
Emacs, yang dipublikasi via github (dalam format pdf).
- https://www.gnu.org/software/emacs/
- https://github.com/kholidfu/emacs_doc/
- https://orgmode.org/