Table of Contents
- 1. Kesepakatan Penulisan
- 2. Pengenalan tentang Emacs
- 3. Sejarah Singkat Emacs
- 4. Mengapa Emacs Penting
- 5. Menginstall Emacs
- 6. Antarmuka Pengguna Emacs
- 7. Memulai Emacs
- 8. Mode dan Fungsionalitas Tambahan
- 9. Penggunaan Ekstensi (packages) dalam Emacs
- 10. Kustomisasi Emacs
- 11. Productivity Tips
- 12. Penutup
- 13. Tulisan lain tentang Emacs di Blog ini
- 14. Daftar Pustaka
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!
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…
1 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.
Simbol | Keterangan |
---|---|
C | Tombol Ctrl |
M | Tombol Alt |
S | Tombol Shift |
- | Tombol dash, 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, terus lepas. |
Jangan lupa, terus perhatikan mini buffer ya, karena ada banyak 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….
2 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.
3 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…
4 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.
5 Menginstall Emacs
Emacs dapat diinstal di berbagai sistem operasi, berikut ini cara install pada beberapa sistem operasi yang sering digunakan.
5.1 Linux (Ubuntu)
Untuk Ubuntu dan beberapa varian distro Debian lainnya:
sudo apt update && sudo apt install emacs
Atau, jika Anda ingin install yang versi non-GUI:
sudo apt update && sudo apt install emacs-nox
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.
5.2 MacOS
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, install Emacs dengan perintah:
brew install emacs
Setelah selesai, Emacs akan terinstal di macOS Anda. Selanjutnya buka dengan menjalan perintah emacs di terminal.
5.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.
6 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.
6.1 Buffer
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.
6.2 Mode
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…
6.3 Mini Buffer
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 Ctrl-x Ctrl-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).
Untuk mengembalikan lagi, atau menutup mini buffer, tekan Ctrl-g beberapa kali sampai mini buffer yang ada di bawah window menghilang.
6.4 Bilah Menu (Menu Bar)
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 Alt-x.
Untuk menjalankan emacs dalam sistem non-GUI, tambahkan parameter -nw (no-window) ketika menjalankan emacs:
emacs somefile.py -nw
Dan berikut ini tangkapan layar Emacs dalam sistem non-GUI.
6.5 Bilah Status (Status Bar)
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.
Meskipun kecil, status bar ini salah satu bagian penting dalam Emacs, mungkin akan saya jelaskan lebih jauh dalam tulisan lain.
6.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 |
---|---|
Ctrl-x Ctrl-f | Membuka berkas |
Ctrl-x Ctrl-s | Menyimpan berkas |
Ctrl-x Ctrl-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.
7 Memulai Emacs
Setelah mengenal bagian-bagian dari UI Emacs, mari kita mulai menyunting berkas dengan Emacs. Yang pertama kita lakukan tentunya adalah membuka berkas.
7.1 Membuka dan Menyimpan Berkas
7.1.1 Membuka Berkas Baru
7.1.2 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 Ctrl-x Ctrl-f. Perintah ini akan membuka mini buffer di bagian bawah layar, selanjutnya ketikkan nama berkas tersebut, kemudian tekan Enter.
7.1.3 Menyimpan Berkas
Untuk menyimpan berkas, ketikkan perintah Ctrl-x Ctrl-s. 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.
7.1.4 Menyimpan Berkas dengan Nama Baru (Save As)
Jika Anda ingin menyimpan berkas dengan nama baru, ketikkan perintah Ctrl-x Ctrl-w.
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.
7.2 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:
7.2.1 Navigasi Dasar
Command | Keterangan |
---|---|
Ctrl-f | Perintah ini digunakan untuk maju satu karakter ke depan. Ini sering digunakan untuk menggeser kursor ke kanan. |
Ctrl-b | Perintah ini digunakan untuk mundur satu karakter. Ini membantu Anda untuk menggeser kursor ke kiri. |
Alt-f | Perintah ini digunakan untuk maju satu kata ke depan. Ini memindahkan kursor ke awal kata berikutnya. |
Alt-b | Perintah ini digunakan untuk mundur satu kata. Ini memindahkan kursor ke awal kata sebelumnya. |
Ctrl-v | Perintah ini digunakan untuk menuju ke bawah dalam teks sejauh satu layar penuh (menggulung ke bawah). |
Alt-v | Perintah ini digunakan untuk bergerak ke atas dalam teks sejauh satu layar penuh (menggulung ke atas). |
Ctrl-n | Perintah ini digunakan untuk bergerak turun satu baris. |
Ctrl-p | Perintah ini digunakan untuk bergerak naik satu baris. |
Ctrl-a | Perintah ini digunakan untuk bergerak ke awal baris. |
Ctrl-e | Perintah ini digunakan untuk bergerak ke akhir baris. |
7.2.2 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 Ctrl-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 Ctrl-s beberapa kali sampai kursor bergerak ke kata yang kita inginkan.
Command | Keterangan |
---|---|
Ctrl-s | Mencari kata secara maju (forward-search) |
Ctrl-r | Mencari kata secara mundur (backward-search) |
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 Ctrl-s secara berulang sampai menemukan kata yang ingin Anda cari.
Misal, kita punya teks sebagai 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 |
---|---|
ctrl-p | Tekan beberapa kali sampai kursor bergerak ke baris paling atas. |
ctrl-a | Menuju ke awal baris. |
ctrl-s | Memulai pencarian maju. Ketikkan kata yang ingin kita cari (perhatikan mini buffer). |
ctrl-s | Maju ke kata and yang kedua |
Enter | Mengakhiri pencarian, otomatis kursor akan berada di akhir kaya yang kita cari. |
Ini adalah beberapa perintah dasar yang akan membantu Anda bergerak dengan cepat dan efisien dalam teks dan buffer saat menggunakan Emacs. Dengan menguasai perintah-perintah ini, Anda akan menjadi lebih produktif dalam pengeditan teks dan navigasi di Emacs.
7.3 Pengeditan Teks Dasar
Bagian ini akan membahas cara menyorot sebuah teks yang akan kita sunting, misal teks tersebut mau kita potong (cut), salin (copy), atau sekadar mengedit typo.
7.3.1 Memotong, Menyalin dan Menyisipkan Teks
Untuk memulai penyorotan, sebaiknya ganti dulu theme default ke theme lain, misal wheatgrass. Perhatikan tangkapan layar berikut untuk mengganti theme. Caranya adalah dengan menekan menu 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…
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 Ctrl-s diikuti dengan kata printer, ikuti dengan menekan Enter. Kursor saat ini berada tepat di akhir kata printer, selanjutnya kita tekan:
Command | Keterangan |
---|---|
Ctrl-Space | Memulai untuk menyorot |
Alt-b | Memindahkan kursor ke belakang 1 kata |
Alt-w | Menyalin bagian yang sedang disorot ke clipboard |
Berikut ini tangkapan layarnya
Sekarang kita sudah memiliki kata printer di clipboard, kalau kita ingin menyisipkan (paste) kata tersebut di awal paragraf (misalnya), tekan navigasi berikut:
Command | Keterangan |
---|---|
Ctrl-p | Naik 1 baris (tekan beberapa kali, sampai kursor berada di baris paling atas) |
Ctrl-a | Menuju ke awal baris. |
Ctrl-y | Menyisipkan teks yang sudah kita 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 Alt-w kita ganti dengan Ctrl-w.
Command | Keterangan |
---|---|
Alt-w | Copy |
Ctrl-w | Cut |
Ctrl-y | Paste |
Semoga berhasil ya… kalau masih bingung, ulangi pelan-pelan… :)
7.3.2 Menggunakan Undo dan Redo
Berikut ini adalah perintah untuk melakukan undo dan redo di Emacs.
Command | Keterangan |
---|---|
Ctrl-_ | Undo |
Ctrl-g Ctrl-_ | Redo |
Tanda _ 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….
7.3.3 Mencari dan Menggantikan Teks
Untuk mencari dan mengganti teks secara manual dengan konfirmasi, lakukan cara berikut:
Command | Keterangan |
---|---|
Alt-Shift-5 | Menjalankan fungsi query-replace, ketik kata yang ingin dicari (perhatikan mini buffer) |
Enter | Tekan Enter |
Isi dengan kata pengganti (perhatikan mini buffer) | |
Enter | Tekan Enter lagi |
y | Tekan y untuk Yes, atau tekan n untuk No (tidak mengganti) (mode confirmation) |
! | atau jika 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.
8 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:
8.1 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.
8.2 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).
8.3 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.
8.4 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).
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.
Silakan menuju tautan https://orgmode.org/ untuk mengetahui lebih lanjut. Mungkin lain waktu akan kita bahas lebih lanjut dalam tulisan lain.
8.5 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:
Untuk melakukan navigasi, kita bisa gunakan tombol panah, atau Ctrl-n, Ctrl-p, Enter.
9 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.
9.1 Menginstall Ekstensi
Untuk melihat daftar ekstensi yang tersedia dalam repo default, lakukan perintah berikut:
Alt-x package-list-packages
Dan berikut ini tangkapan layarnya:
Setelah muncul daftar ekstensi ini, kita bisa melakukan search dengan cara seperti yang sudah ditulis di atas (Ctrl-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 |
---|---|
Ctrl-s | Search dalam repo |
i | menandai package yang akan di-install |
d | menandai package yang akan di hapus (uninstall) |
x | Eksekusi |
9.2 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 Alt-x package-list-packages
dan search paket tersebut. Seperti dalam tangkapan layar berikut ini:
10 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.
10.1 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.
10.2 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.
Silakan buka file ~/.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 Alt-x package-list-packages
untuk melihat daftar package dalam semua repo (bawan + tambahan), kemudian tekan Enter, dan saat ini repo Melpa berarti sudah kita tambahkan, saatnya kita cari salah theme yang sedang favorit saat ini, yakni zenburn. Caranya adalah dengan menekan Ctrl-s diikuti dengan mengetik zenburn, sampai beberapa kali sampai ketemu dengan package yang bernama zenburn-theme.
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.
10.3 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?
10.4 Membuat Fungsi Emacs Custom
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 Alt-x helloo
tekan Enter, kemudian di mini buffer akan keluar Hello World!. Gimana seru bukan? bukaaaaaann….
10.5 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.
11 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 (Ctrl-s Ctrl-r), paling Ctrl-f , Ctrl-b, Alt-f, Alt-b, Ctrl-a, Ctrl-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… Ctrl-p untuk lihat command sebelumnya, Ctrl-a menuju awal baris, Ctrl-g untuk membatalkan perintah, Alt-b mundur satu kata, Alt-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….
11.1 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 Ctrl-u 9 F4.
Command | Keterangan |
---|---|
F3 | Memulai Macro |
Ctrl-p | Tekan beberapa kali sampai kursor berada di baris paling atas |
Ctrl-a | Menuju ke awal baris |
Ctrl-Space | Memulai mode sorot |
Ctrl-s | Memulai mode search forward |
"> | Mencari simbol "> |
Enter | Menghentikan pencarian |
Delete | Tekan tombol Delete untuk menghilangkan teks yang sudah disorot |
Ctrl-s | Melakukan pencarian lagi |
</ | Mencari simbol </ |
Enter | Menghentikan pencarian |
Ctrl-b 2x |
Mundur (backward) 2 karakter |
Ctrl-space | Memulai penyorotan teks |
Ctrl-e | Menuju akhir baris |
Delete | Hapus teks yang disorot |
Ctrl-n | Menuju 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 dengan menekan F4 sebanyak yang Anda mau, atau bisa juga dengan menentukan berapa kali pengulangan yang kita inginkan, dengan menekan Ctrl-u 5 F4.
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!
11.2 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 |
---|---|
Ctrl-x r m | Set bookmark |
Ctrl-x r l | Melihat semua bookmark |
Bookmark ini sifatnya persistent ya… meskipun Anda tutup Emacs, tidak akan hilang. Sebagai catatan, kalau Anda pengguna aktif Emacs, perintah untuk melihat daftar bookmark (Ctrl-x r l) ini adalah salah satu perintah pertama yang harus Anda hapal!
12 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…
13 Tulisan lain tentang Emacs di Blog ini
- 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
- Mempercantik Tampilan PDF Hasil Export Org Mode
- Menambahkan Daftar Isi Otomatis di Berkas Org
- Replace String dengan Baris Baru (Newline) di Emacs
- Nge-blog dengan Org-mode
- Membuat File yang dihapus di Emacs Masuk ke Trash Bin - bisa di recover
- Membatasi Panjang Org Tabel ketika Export ke LaTeX
- Kumpulan Syntax di Mode Org
- Cara Copy Paste dari dan ke Emacs X11
- Cara Mengatur Daftar Isi dan Nomor Heading di Org Mode
- Escape Character di Org Mode
- Membuat Tabel di Org Mode
- Membuat List di Org Mode
- Setting Postamble di Org Mode
- Menulis Simbol Spesial di Org Mode
- Belajar Ido Mode
- Membuat Internal Link dalam Dokumen Org
- Pencarian dengan regex
- Melakukan SSH dari dalam Emacs
- Beberapa packages yang menarik
Note: beberapa artikel lain menyusul yaaa… mungkin akan diselingi dengan tulisan lain dulu… biar ndak bosen…
14 Daftar Pustaka
Artikel ini sebenarnya bentuk lain dari tulisan saya sebelumnya tentang Emacs, yang dipublikasi via github (dalam format pdf).