Masih memakai Emacs

Sekitar 8 tahun lalu saya menulis kalau saya mulai nyaman memakai Emacs. Selama ini saya masih sering mencoba-coba editor lain, termasuk juga kembali mencoba mendalami Vim karena saat ini Vim popularitasnya semakin naik dibandingkan Emacs. Tapi pada akhirnya saya masih memilih Emacs.

Ini cuma sekedar catatan pribadi, bukan untuk flamewar. Kalau tidak ditulis saya akan lupa (kalau tidak membaca posting saya sebelumnya, saya tidak ingat bahwa dulu sering memakai editor joe).

Saya mencoba berbagai editor dan IDE termasuk juga yang berbayar seperti Sublime Text dan Intellij Ultimate. Saya memakai IDE yang memudahkan development untuk bahasa atau platform tertentu misalnya .NET dengan Visual Studio, Python dengan Intellij, Android Studio untuk Android, dsb. Tapi untuk berbagai task editing, saya tetap kembali ke Emacs.

Pemakaian emacs yang cukup sering adalah untuk editing teks di komputer remote dan untuk fitur org-mode. Jika sering mengurus server, maka menguasai editor teks terminal merupakan suatu hal yang wajib. Kita bisa saja mengcopy file ke lokal, edit, upload lagi, atau menjalankan remote desktop, tapi keduanya membuang waktu (apalagi jika filenya besar). Jadi menguasai editor teks sederhana seperti Vim, Emacs, Nano, Pico dsb akan sangat membantu.

Editor yang terlalu sederhana seperti Nano dan Pico cukup untuk hal yang sederhana, tapi misalnya kita ingin fitur yang lebih advanced seperti split screen ini tidak bisa dilakukan. Split screen ini sangat sering dibutuhkan, misalnya kasus: ingin membandingkan dan copy paste bagian konfigurasi. Biasanya kita perlu menggabungkan dengan program semacam tmux atau screen untuk split screen (ini pun tidak mudah copy paste). 

Editor yang terlalu sederhana juga tidak mendukung syntax highlighting, misalnya untuk membantu mengedit file JSON atau file konfigurasi. Syntax highlighting bisa membantu mengurangi kesalahan fatal seperti misalnya lupa memberikan kutip tutup.

Jadi pilihan yang masuk akal untuk editing remote menurut saya adalah Vim atau Emacs. Fitur keduanya lebih dari cukup untuk berbagai keperluan editing file remote. Tapi bagi saya berbagai default Vim terlalu mengesalkan dan menurut saya kurang konsisten.

Salah satu contohnya seperti ini: saya memilih teks (dengan visual mode atau v), dan ingin mengganti semua karakter x menjadi z (dengan ESC, :s/x/z/g), defaultnya jika saya lakukan itu, maka SELURUH karakter di baris itu yang diganti (bukan hanya yang terpilih). Jika ingin hanya yang terpilih saja, maka saya harus menambahkan karaktertiga \%V, jadi :s/\%Vx/z/g. Menurut saya default yang tidak menggunakan selection ketika kita sedang memilih adalah hal yang aneh. Untuk mengetik \%V dibutuhkan menekan banyak tombol \, Shift 4, V, lepas shift.

Perintah Emacs namanya cukup mudah diingat, asalkan ingat parsial, kita bisa menekan TAB untuk autocomplete. Dalam contoh di atas, kita tinggal menekan, Alt-x (atau ESC-x), replace<TAB>. Kita bisa memilih: replace-string (menganti string dengan string lain, tanpa regex) atau replace-regexp (replace dengan regex). Di Vim search defaultnya selalu regex, jika tidak ingin regex harus memakai :sno. Ini adalah salah satu default yang menurut saya aneh.

Kedua editor bisa dikonfigurasi, dan bahkan mendukung scripting language untuk menambah fungsi tertentu. Dulu Vim hanya mendukung Vimscript, sebuah bahasa yang nggak standar (satu lagi bahasa yang perlu dipelajari plus berbagai fungsi di bahasa tersebut), sekarang Vim sudah mendukung skrip dalam berbagai bahasa (Lua, Ruby, dsb), tapi karena sudah terlanjur kebanyakan plugin ditulis dalam Vimscript, kebanyakan plugin masih tetap memakai Vimscript. 

Emacs memakai Lisp (elisp), jadi jika sudah tahu lisp maka tidak perlu lagi belajar bahasa baru, hanya perlu tahu berbagai fungsi yang disediakan oleh elisp dan perbedaan dialek Lisp-nya.

Fitur org-mode sangat berguna untuk banyak hal, dari mulai sebagai organizer sampai untuk menulis artikel (atau bahkan buku). Dokumen org-mode bisa diekspor jadi HTML, file open document, atau LaTex (dan dari LaTex menjadi PDF).

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.