Masih adakah orang yang memakai Emacs?
(jmmv.dev)- Setelah mulai mengenal Linux pada 1997, pengalaman berpindah-pindah antara Vim dan Emacs sempat beralih ke VSCode dan IntelliJ pada 2015, lalu berujung kembali ke Doom Emacs pada 2022 di lingkungan VM Linux jarak jauh milik Snowflake
- VSCode mempermudah belajar dan pengembangan berkat UI modern, ukuran yang ringan, konfigurasi berbasis JSON, serta integrasi LSP untuk Go dan Rust; untuk pengembangan Java, IntelliJ adalah pilihan yang lebih realistis
- Di VM Linux lama milik Snowflake, pekerjaan berfokus pada penulisan shell script dan Bazel build file, dan dibanding lingkungan grafis jarak jauh, pekerjaan berbasis SSH lebih cocok sehingga Emacs kembali dibutuhkan
- Doom Emacs membuat Emacs terasa seperti IDE berkat nilai bawaan yang masuk akal, integrasi bahasa, key binding bergaya Vim, menu pop-up berbasis space, dan struktur file konfigurasi yang sederhana
- Alasan utama tetap memakai Emacs adalah kemampuan mempertahankan lingkungan pengembangan yang sama hanya dengan shell·tmux·Emacs di MacBook, laptop Linux, workstation cloud Linux, maupun server FreeBSD
Dari IDE DOS/Windows ke editor Linux
- Mulai mengenal Linux sekitar 1997 lewat Caldera OpenLinux 1.1
- Sebelumnya banyak memakai Borland Turbo C++ dan Visual Basic, sehingga sudah terbiasa dengan IDE matang pada masa itu
- Lewat dua buku pengantar Linux, mulai mengenal Vim dan Emacs, dan keduanya diperkenalkan sebagai pilihan tingkat lanjut
- Meski IDE yang dipakai sebelumnya tampak lebih lengkap, dasar penggunaan dan tutorial Vim maupun Emacs tetap dipelajari
- Hingga sekitar 2015, Vim dan Emacs dipakai bergantian
- Emacs lebih cocok untuk sesi coding yang panjang
- Vim unggul saat perlu berpindah cepat antar banyak file dan mengeditnya, seperti pada pekerjaan pkgsrc
Mengapa beralih ke VSCode dan IntelliJ
- Walau Vim dan Emacs sudah cukup berfungsi, integrasi bahasa keduanya lemah sehingga muncul minat pada editor yang lebih modern
- Setelah pindah ke macOS, sempat mencoba Atom dan Brackets, tetapi keduanya terasa rapuh dan membebani karena fitur serta konfigurasinya terlalu banyak
- VSCode yang muncul pada 2015 langsung terasa cocok sejak awal
- Tampil modern dan relatif ringan
- Pada saat itu editor konfigurasi berbasis file JSON tanpa panel pengaturan terasa lebih mudah dikendalikan
- Saat mulai belajar Go dan Rust, integrasi LSP tiap bahasa di VSCode sangat membantu
- Autocomplete kode
- Penandaan error secara real-time
- Meningkatkan kecepatan belajar
- Saat menangani proyek Java Bazel di Google, IntelliJ adalah pilihan yang alami
- Pernah mencoba pengembangan Java dengan Emacs, tetapi IntelliJ sangat baik sehingga secara realistis IntelliJ adalah pilihannya
- Saat menangani codebase C++ dan mesin Windows jarak jauh di Microsoft, VSCode bersama plugin Vim juga terus dipakai
- Banyak orang bekerja langsung di mesin jarak jauh lewat RDP
- Menjalankan VSCode di desktop lokal lalu terhubung ke mesin jarak jauh lewat SSH jauh lebih disukai
Titik balik kembali ke Doom Emacs di Snowflake
- Setelah pindah ke Snowflake pada 2022, pengembangan dilakukan di dalam VM Linux lama, dan pekerjaan sehari-hari berupa penulisan shell script serta Bazel build file
- Di lingkungan ini, VSCode maupun IntelliJ tidak banyak membantu, dan karena tidak suka keterbatasan lingkungan grafis jarak jauh, kembali ke cara mengakses VM lokal lewat SSH
- Kembali membutuhkan editor untuk sesi kerja panjang, dan pilihannya adalah Emacs
init.ellama berisi ratusan baris konfigurasi yang menumpuk selama bertahun-tahun, tetapi isinya tidak lagi dipahami sepenuhnya, sehingga ingin membuang semuanya dan memulai dari awal- Pada titik ini menemukan Doom Emacs
- Doom Emacs adalah “distribusi” Emacs yang sudah dikonfigurasi dari awal
- Menyediakan nilai bawaan yang masuk akal
- Menyediakan integrasi bahasa yang telah ditentukan sebelumnya
- Memberikan pengalaman yang familier bagi mantan pengguna Vim
- Tidak mengklaim diri sebagai IDE, tetapi dalam penggunaan nyata terasa seperti IDE
Bagaimana Doom Emacs mengubah pengalaman penggunaan
- Setelah mengatur Doom Emacs, Emacs kembali terasa seperti “alat yang pas” sebagaimana VSCode pada 2015
- Banyak fitur Emacs menjadi lebih mudah ditemukan karena tampil lewat menu pop-up interaktif di balik shortcut berbasis space
- Tetap berdampingan dengan key binding bergaya Vim sambil memberi alur shortcut yang lebih ringan bagi pergelangan tangan
- Konfigurasi dibagi menjadi tiga file sederhana
config.el: menetapkan pengaturan global seperti theme dan fontinit.el: memilih modul khusus Doom yang akan diaktifkanpackages.el: memasang paket yang tidak disertakan dalam Doom
- Nilai bawaannya masuk akal, dan detail yang layak diubah diberi komentar yang cukup
- Berkat perkembangan LSP dan fitur modern seperti tree-sitter, Emacs kini terasa seperti IDE
- Untuk sebagian besar bahasa yang perlu ditangani, tersedia integrasi bahasa yang layak
Nilai dari memakai lingkungan pengembangan yang sama di mana saja
- Fitur paling kuatnya adalah bisa mendapatkan lingkungan pengembangan yang sama di mesin mana pun tempat bekerja
- Mesin yang dipakai mencakup MacBook, laptop Linux, workstation cloud Linux, hingga server FreeBSD pribadi
- Yang dibutuhkan hanyalah shell, tmux, dan Emacs
- Saat bekerja di berbagai mesin, lingkungan yang sama dan muscle memory yang konsisten memberi nilai langsung pada produktivitas
- Karena kebutuhan ini, Emacs menjadi alat yang lebih penting daripada sebelumnya
Apakah Doom Emacs melakukan terlalu banyak hal?
- Ada keluhan bahwa Doom Emacs “melakukan terlalu banyak hal”, tetapi justru itulah yang membuatnya berguna
- Muncul juga pemikiran apakah suatu saat konfigurasi bisa disederhanakan untuk lebih mempelajari Emacs itu sendiri
- Arus masuknya berbagai modul pihak ketiga modern ke paket bawaan Emacs turut memperkuat pertanyaan ini
- Belakangan ini juga tertarik mencoba distribusi seperti Bedrock atau Emacs Solo
- Namun energi aktivasi yang dibutuhkan untuk berpindah cukup tinggi, dan bahkan jika jalur itu dipilih, pertanyaan tentang mengapa tidak sekalian memakai Emacs “raw” pada akhirnya akan muncul lagi
Jarak emosional terhadap Elisp, Org mode, dan Magit
- Karena Emacs berbasis Elisp, masih belum sepenuhnya memahami bagaimana hal itu bisa sangat mengubah workflow banyak orang
- Memang mungkin menerapkan lebih banyak logika dan workflow di dalam Emacs, tetapi hampir semua hal sudah bisa ditangani dengan mudah lewat shell script
- Script terasa lebih sesuai dengan semangat Unix dari sudut pandang “Unix is my IDE”
- Tidak menyukai bahwa Org mode dan Magit terikat di balik Emacs alih-alih menjadi aplikasi mandiri
- Selama kebutuhan untuk terus bekerja di berbagai mesin jarak jauh masih ada, Emacs akan tetap menjadi alat yang penting
1 komentar
Pendapat di Lobste.rs
Saya menulis ini karena topiknya terlalu lucu
Bukan karena pertanyaan tertentu, melainkan karena saya melihat orang-orang berpangkat tinggi di perusahaan “menemukan” alat baris perintah saat memakai agen coding berbasis CLI, lalu mencoba menunjukkan betapa bergunanya penemuan baru itu
Sejauh ini contoh utamanya adalah tmux, dan sekarang tinggal menunggu mereka sadar bahwa Vim dan Emacs juga ada
Alat-alat seperti ini sudah lama ada, dan kalau Anda bertanya pada “pengembang 10x tingkat lanjut” di perusahaan, kemungkinan mereka memang memakainya
Meski begitu, sering kali diperlakukan seperti “haha, itu artefak kuno. ayo ke web!!11” Mungkin ada alasan mengapa para pengembang itu tetap memakai alat-alat ini ;P
Termasuk CLI menjadi lebih umum, dan banyak pengetahuan yang sebelumnya hanya diwariskan secara lisan kini mulai didokumentasikan. Tentu dengan syarat bahwa pengetahuan itu dibuat oleh manusia
Saya harap bagian-bagian baik seperti ini tetap bertahan setelah kita melewati masa canggung yang sekarang
Saya juga termasuk yang baru mulai belajar
Beberapa tahun lalu saya mencoba Doom Emacs, tetapi rasanya lambat sampai mengganggu karena latensinya, jadi saya langsung mundur. Saya tidak tahu apakah itu kini sudah jadi masa lalu berkat kompilasi native; masih sulit menilainya karena saya masih memakai Emacs bawaan tanpa konfigurasi. Saya memakai 30.2 dari Nixpkgs, dan sepertinya kompilasi native aktif secara default
Saya tidak terlalu tertarik pada hal seperti menulis email di Emacs; yang saya butuhkan adalah editor yang bisa saya bentuk sesuai keinginan. Akan lebih bagus kalau nanti juga bisa dipakai saat saya ingin belajar Lisp, yang kemungkinan besar akan jadi Janet. Helix masih belum punya plugin, jadi untuk Lisp pilihannya hampir tidak ada. Saya juga suka filosofi “semuanya adalah teks”, meski apakah itu benar-benar cocok untuk saya masih harus dilihat
Untuk dipelajari pada 2026, ada juga sisi yang terasa memberatkan. Karena pengetahuan implisit yang menumpuk selama puluhan tahun, ketika membaca tulisan tentangnya nama paket, nama perintah, dan semacamnya bermunculan terus, sehingga terasa melelahkan padahal saya cuma ingin melakukan
$THING. Jadi saya mengambil jalur belajar yang lebih terpandu dengan Mastering EmacsKey binding bawaannya juga cukup aneh. Saya tahu semuanya bisa dipetakan ulang, tetapi itu menambah pekerjaan. Selain itu, saya membuat sendiri keyboard ergonomis split, dan firmware-nya juga sudah saya sesuaikan dengan gaya kerja ala Vim/Helix yang tidak menjadikan tombol modifier sebagai inti alur kerja
Saya berpindah-pindah antara MacBook Pro, PC, dan keyboard kustom, jadi saya perlu menemukan key binding yang konsisten agar otak saya tidak meleleh.
hjklada di posisi yang sama pada semua keyboard, tetapi tombol sepertiCtrltidakAnda mungkin akan mendengar ceramah bahwa evil itu untuk para pengungsi Vim yang tidak mau belajar “injil sejati Emacs”, tetapi injil sejati Emacs® justru adalah memakainya dengan cara yang paling cocok untuk diri sendiri
Saya memakai Emacs sejak 1998 dan sama sekali bukan penggemar Vim. Sekitar 2011 saya mulai punya sedikit masalah RSI di pergelangan tangan, lalu mencoba paket-paket yang bisa menguranginya, dan selama beberapa tahun cukup banyak memakai god mode, tetapi tetap terasa canggung
Lalu, untuk “membuktikan bahwa itu tidak akan berhasil”, saya mencoba evil meski seumur hidup belum pernah memakai Vim, dan dalam seminggu saya sudah sefasih saat memakai god mode, lalu sebulan kemudian saya malah lebih cepat daripada saat memakai key binding Emacs resmi
Itu bukan berarti key binding bawaan itu salah. Pergelangan tangan saya memang kurang baik, jadi pengalaman saya bisa berbeda. Mungkin boon atau meow juga lebih cocok
Tetapi jika evil cocok untuk Anda, tidak ada alasan sedikit pun untuk merasa bersalah. Emacs memang bisa mengubah penggunanya, tetapi jauh lebih besar lagi, Emacs berubah demi penggunanya
Yang terbaik memang meraciknya sendiri, tetapi itu banyak kerja, dan proyek seperti Doom jelas sangat memudahkan masuknya pengguna baru
Dulu saya cukup tahu key binding bawaan Emacs, tetapi tidak pernah terasa alami, dan terutama sulit ditemukan sendiri
Doom Emacs memakai prefix key SPC untuk hampir semua tugas, dan kalau Anda berhenti sebentar akan muncul menu sementara yang menjelaskan pelengkapan yang tersedia, yang menurut saya sangat bagus. Itu membantu menemukan fitur yang sebelumnya tidak saya ketahui, dan juga tidak bentrok dengan mode modal Vim
Karena itu, konfigurasi dengan mode Vim untuk mengedit teks dan kombinasi SPC untuk tugas-tugas Emacs terasa seperti keseimbangan yang bagus
Key binding bawaan Emacs juga punya kelebihan. Tombol manipulasi teks dasarnya dipakai bersama readline, bahkan juga macOS. Tombol pengelolaan teks gaya Emacs di macOS bahkan menular ke VSCode dan tidak bentrok dengan tombol clipboard standar, jadi VSCode di macOS terasa cukup bagus
Setelah pindah ke Windows dan Linux, saya benar-benar sulit tahan memakai VSCode tanpa plugin Vim
Katanya ia menyediakan fitur yang mirip Kakoune dan Helix secara bawaan, serta berusaha untuk tidak terlalu mengganggu. Saya sendiri belum benar-benar memakai keduanya, jadi ini berdasarkan apa yang saya dengar
Menurut saya, masalah dengan paket evil yang direkomendasikan itu adalah ia mengambil alih terlalu banyak key binding dan kurang cocok dengan paket eksternal, sehingga sering perlu banyak paket “adapter”
Setelah sekali dikonfigurasi, meow cenderung tidak terlalu merepotkan
Saya sudah memakainya selama 33 tahun, dan ia melakukan semua yang saya butuhkan dari editor maupun IDE
Sempat bolak-balik antara Doom dan (n)vim, tetapi belakangan ini sebagian besar sudah menetap di Neovim
Masalah utama yang saya alami saat memakai Emacs, lucunya, justru karena perawatannya menyakitkan. Saat Doom di-upgrade, sinkronisasi paket sering kacau sehingga yang tersisa cuma opsi nuklir: instal ulang total
Tentu saja mungkin saya bisa memperbaikinya dengan cara yang lebih “tidak seperti pemula”, tetapi pada titik tertentu saya jadi hanya ingin alatnya sekadar bekerja. Saat ada pekerjaan yang harus diselesaikan, konfigurasi rusak dan situasi terlalu bergantung pada editor seperti ini sulit ditanggung
Meski begitu, saya tetap merindukan org-mode dan cara navigasi Emacs secara keseluruhan
Setiap kali mencoba solusi yang “modern” seperti VSCode atau CLion, saya justru mengalami masalah yang sama lebih banyak lagi. Tidak ada fitur aksesibilitas yang layak, jadi alih-alih navigasi murni dengan keyboard saya harus klik-klik dengan canggung, dan perilaku “Vim”-nya juga tidak lengkap dibanding yang asli
Alasan saya memakai Neovim akhir-akhir ini sederhana: karena ia memang bekerja dengan baik. Sebenarnya, kalau saya menyuruh coding agent memperbaiki konfigurasi selama 2 menit, mungkin saya juga bisa mengatakan hal yang sama tentang Emacs saya sekarang (:
updatemilik Doom, tetapi selalu muncul masalahSekarang, setiap kali ingin upgrade atau memang perlu karena upgrade Emacs, saya hapus dengan
rm -rf ~/.emacs.d/lalu menyiapkan Doom lagi dari awal.~/.doom.d/saya simpan dalam version controlDengan alur ini, tidak ada masalah
Saya ini orang aneh yang memakai Emacs untuk pengembangan, menulis, sampai email, dan sudah begitu sekitar 15 tahun, tetapi tetap saja saya tidak pernah menemukan waktu atau kelonggaran untuk belajar elisp
Bahkan saat menyentuh file konfigurasi, sebenarnya saya juga tidak terlalu paham apa yang sedang saya lakukan. Meski begitu, ini tetap lingkungan paling produktif bagi saya, dan itu menunjukkan betapa hebatnya editor ini :-)
Membaca Mastering Emacs dengan serius sudah ada di daftar tugas saya selama memalukan lamanya
M-x high-fiveDalam kasus saya juga, saya hanya memakai sangat sedikit paket dan menggunakan key binding bawaan. Sebenarnya tidak ada fungsi high-five, tetapi siapa tahu ini akhirnya jadi momen saya untuk benar-benar menggali elisp
Saya tidak suka rendering Vim dan juga sudah lelah dengan Electron/VSCode dan sejenisnya, jadi sekitar 2 tahun lalu saya pindah ke Emacs
Saya sempat tergila-gila pada avy dan beberapa plugin lompatan, tetapi yang membuat saya bertahan dan sampai sekarang menjadikannya alat utama untuk perubahan kode adalah magit
Perusahaan pelanggan yang saya tangani di pekerjaan bergantung pada pemanfaatan file CSV yang sangat besar untuk seluruh bisnisnya, tetapi di sana tampaknya tidak ada yang tahu cara membuka atau memeriksa data dalam file 1GB
Mereka bahkan tidak tahu perintah
headuntuk meminta header CSVSetelah bertahun-tahun memakai X/GUI, barusan saya beralih ke
-nwSaya hanya memakai versi Pgtk saat presentasi