- Seorang developer yang telah menggunakan Vim selama 20 tahun membagikan pengalamannya setelah beralih ke editor Helix dan memakainya selama 3 bulan
- Helix menarik karena mendukung language server (LSP) secara bawaan tanpa konfigurasi yang rumit
- Terutama dibandingkan Vim/Neovim, fitur pencarian dan multi-cursor yang unggul terasa lebih baik, sehingga memahami konteks di banyak file dan melakukan edit massal menjadi lebih nyaman
- Saat menekan tombol, popup referensi cepat (quick reference) membantu memanfaatkan shortcut tanpa harus mengingat semuanya
- Ada beberapa kekurangan, seperti belum mendukung pembuatan daftar Markdown otomatis, belum ada undo persisten, dan crash sekitar seminggu sekali, tetapi secara keseluruhan pengalaman pemakaiannya memuaskan
- Proses melatih ulang memori otot Vim yang terbentuk selama 20 tahun ternyata lebih mudah dari perkiraan, dan mempelajari "cara Helix" jauh lebih efektif daripada memaksakan cara Vim
Alasan beralih ke Helix
- Alasan mulai memakai Helix adalah agar bisa memanfaatkan fitur integrasi language server dengan mudah
- Di Vim/Neovim, konfigurasi language server rumit, sedangkan di Helix tanpa pengaturan tambahan kita bisa langsung memakai fitur seperti go to definition atau rename symbol
- Sebelumnya perlu memelihara banyak plugin dan file konfigurasi, tetapi dengan dukungan bawaan Helix beban itu berkurang
Kelebihan utama Helix
- Sistem pencarian yang unggul
- Saat mencari string di seluruh repositori, hasilnya ditampilkan dalam jendela pratinjau sehingga kita bisa menggulir file yang cocok sambil melihat kode di sekitarnya
- Berbeda dengan plugin ripgrep di Vim, hasilnya lebih kaya konteks sehingga keputusan bisa diambil lebih cepat
- Fitur referensi shortcut cepat
- Menekan tombol
g akan menampilkan daftar perintah perpindahan dalam popup bantuan, sehingga terasa intuitif
- Shortcut yang jarang dipakai pun mudah dicek, jadi kurva belajarnya lebih landai
Perbedaan Vim dan Helix
- Fitur mark tidak memakai
ma, 'a, melainkan melacak riwayat perpindahan kursor dengan Ctrl+O, Ctrl+I
- Lebih sering memakai pengeditan multi-cursor daripada macro
- Untuk perubahan massal dalam dokumen: pilih semua dengan
% → pilih dengan regex memakai s → lakukan pengeditan ganda yang diperlukan
- Multi-cursor jauh lebih nyaman daripada harus selalu menulis macro
- Alih-alih tab, perpindahan cepat dilakukan lewat buffer switcher dengan
space + b
Hal yang kurang nyaman di Helix
- Fitur text reflow kurang efektif dibanding
gq di Vim
- Kompatibilitasnya dengan daftar kurang baik
- Belum mendukung pembuatan daftar Markdown otomatis
- Menekan "Enter" di akhir item daftar tidak akan melanjutkan daftar
- Ada solusi parsial untuk bullet list, tetapi belum ada untuk daftar bernomor
- Fitur undo persisten belum diimplementasikan
- Di Vim,
undofile memungkinkan perubahan dibatalkan bahkan setelah editor ditutup, tetapi Helix belum punya fitur ini
- Belum mendukung reload file otomatis
- Setelah file berubah di disk, perlu menjalankan
:reload-all (:ra<tab>) secara manual
- Kadang mengalami crash
- Kira-kira seminggu sekali, mungkin terkait banyaknya pengeditan Markdown
- Karena cukup dibuka ulang, ini tidak terlalu menjadi masalah
- Meski begitu, ia tetap menggunakan Helix
Proses transisi dan pengalaman belajar
- Ia sempat khawatir melatih ulang memori otot Vim yang terbentuk selama 20 tahun akan sangat sulit
- Saat liburan, ia mulai memakai Helix untuk side project, dan setelah 1–2 minggu tidak lagi terasa membingungkan
- Awalnya ia mencoba memaksakan key binding yang mirip Vim, tetapi gagal, dan mempelajari "cara Helix" ternyata jauh lebih mudah
- Masih ada beberapa bagian yang membingungkan
w di Vim dan w di Helix punya definisi berbeda tentang "kata" (Helix mencakup spasi setelah kata, Vim tidak)
Lingkungan pengeditan berbasis terminal
- Karena selama bertahun-tahun lebih sering memakai vim/neovim versi GUI, menggunakan editor di terminal membutuhkan sedikit adaptasi
- Workflow akhir yang dipilih
- Setiap proyek memakai jendela terminal terpisah, dan semua tab di jendela itu memiliki direktori kerja yang sama
- Tab Helix ditempatkan sebagai tab pertama di jendela terminal
- Ini memudahkan menangani banyak proyek secara paralel, bahkan mungkin lebih baik daripada workflow sebelumnya
Konfigurasi
- Dibandingkan konfigurasi Neovim yang mencapai ratusan baris, ia mempertahankan konfigurasi yang sangat sederhana
- Pada dasarnya hanya mengatur 4 shortcut keyboard
- Isi konfigurasi utama
- Tema:
solarized_light
- Register yank default diatur ke
+ agar sinkron dengan clipboard sistem
# diatur sebagai shortcut toggle komentar (karena tidak menyukai default Ctrl+C)
^ dan $ dipetakan ulang untuk berpindah ke awal/akhir baris (karena tidak ingin mempelajari cara lain)
<space>l diatur ke :reflow (karena sering menulis teks dan butuh reflow, serta merindukan shortcut gq dari Vim)
- Preferensi per bahasa diatur dalam file konfigurasi
languages.toml terpisah
- Untuk Python: memakai formatter black, language server pyright, dan menonaktifkan auto format
Kesimpulan: kesan setelah 3 bulan
- Tiga bulan bukan waktu yang terlalu lama, dan masih ada kemungkinan suatu hari kembali ke Vim
- Pernah beralih ke nix lalu kembali ke Homebrew setelah 8 bulan (meski untuk mengelola satu server masih memakai NixOS dan puas dengannya)
- Helix memang belum sepenuhnya matang, tetapi arah sebagai "editor tanpa konfigurasi" sangat jelas
- Berkat kesederhanaan dan fitur bawaan, Helix punya potensi jangka panjang sebagai pengganti Vim
- Namun apakah akan terus dipakai atau tidak kemungkinan akan bergantung pada peningkatan stabilitas dan perluasan fitur di masa depan
2 komentar
Komentar Hacker News
Saya sudah lama memakai Vim/Neovim, pernah membuat konfigurasi sendiri maupun memakai konfigurasi buatan orang lain, dan meski saya sangat menyukai Vim, sangat menarik bahwa Helix bisa langsung dipakai tanpa perlu pekerjaan konfigurasi tambahan
Namun config Helix sendiri terasa sangat primitif, jadi saya merasa sebenarnya setelah beberapa tahun pertama memakai Vim, saya mungkin sudah bisa mereplikasi lingkungan yang saya dapatkan di Helix, dan ingin mengatakan bahwa dengan begitu saya juga tidak lagi hidup dalam neraka konfigurasi
Saya sangat suka popup bantuan yang memberi tahu jalur atau keybinding yang harus diambil, karena saya tidak sering memakai fitur seperti "go to definition" atau "go to references", jadi mudah lupa shortcut-nya; saya harap popup kontekstual seperti ini diadopsi lebih luas, dan akan sangat berguna jika bisa muncul secara cerdas hanya saat kita ragu-ragu saat mengetik
Saya sudah memakai Vim/Neovim selama 20 tahun, tapi baru 6 bulan terakhir memasang plugin which-key dan ternyata sangat berguna
which-key.nvim GitHub
Saya terus mencoba menyiapkan language server utama dengan baik, misalnya agar "go to definition" berfungsi, tetapi terasa terlalu sulit membuat lingkungan yang nyaman di Vim atau Neovim
Tidak ada kerepotan memindahkan konfigurasi Vim dan dependensi terkait, lingkungan pengembangan terasa jauh lebih portabel meski memang lebih dasar dibanding pengaturan Vim yang kompleks
Terutama setelah melihat penjelasan dan tangkapan layar terkait di artikel tersebut, saya jadi sangat menginginkan fitur ini
Jika popup muncul secara cerdas berdasarkan kondisi seperti timeout, itu luar biasa karena tidak mengganggu saat tidak dibutuhkan, dan otomatis membimbing hanya ketika kita ragu
Sebelumnya saya terutama memakai neovim dan VS Code, dan Helix mengisi celah yang sangat spesifik
Saya bosan harus mengatur neovim atau terus memakai vim, jadi saya butuh titik tengah antara VS Code dan nvim, dan Helix pas sekali
Mungkin saya akan berpikir berbeda kalau saya seorang master vimscript, tetapi saya bukan, jadi ini sangat cocok
Saya harap Helix tetap seperti sekarang tanpa perlu menjadi lebih modular atau lebih bergaya UNIX
Ekosistem berbagai alat sudah ada, dan bisa juga dipakai terintegrasi dengan Claude Code (menerapkan edit baru lewat refresh buffer)
Ini salah satu editor terbaik, sampai saya mulai mendukung proyeknya tiap bulan
Kalau ada perkembangan yang paling saya harapkan ke depan, itu adalah kemampuan merender gambar atau rumus di editor; saya berharap ini bisa diwujudkan lewat plugin seperti protokol terminal Kitty atau sixel
Saya terutama ingin memakainya saat mengerjakan catatan/blog dalam file Markdown
Semoga Helix terus maju
VSCode atau (neo)vim mengharuskan kita mengambil plugin dari banyak tempat, dan itu selalu membuat saya cemas
Saya bukan pengembang lua, tetapi LLM sangat membantu dalam menyiapkan atau memodifikasi konfigurasi nvim
Alasan terbesar saya pindah ke helix adalah karena pengaturan LSP/lint-nya sangat bagus
Saya bagikan beberapa hal tentang fitur yang sudah di-merge di HEAD —
Karena sudah ada file picker bawaan berbasis pencarian fuzzy, file explorer biasa memang tidak memberi banyak utilitas tambahan
Saya juga mencoba plugin keybinding vim untuk Helix, tetapi hanya cocok sebagian, sehingga malah terasa lebih mengecewakan
Saya penasaran bagaimana pengguna Helix yang berpengalaman mengatasinya
Menyiapkan language server yang nyaman di Vim/Neovim terasa terlalu seperti pekerjaan, jadi saya pindah ke Helix
Namun dalam 5 tahun terakhir, Neovim sudah memiliki distribusi yang serba tersedia seperti battery-included sehingga bisa disiapkan dengan sangat mudah
Saya setuju banyak pengembang tidak ingin menghabiskan waktu untuk men-debug editor mereka, dan saya rasa itulah sebabnya JetBrains populer
Meski begitu, bagian tentang pengguna Neovim selama 20 tahun yang belum pernah berhasil membangun lingkungan LSP yang layak agak sulit saya terima, dan saya jadi ragu apakah itu pengalaman jujur penulisnya
Pada akhirnya bahkan untuk itu pun terasa lebih nyaman memakai IDE penuh, jadi selalu ada keraguan soal instalasi dan pengaturannya
Saya bisa memahami pengalaman penulis
Saya juga menjaga konfigurasi seminimal mungkin dan memakainya secara barebones, tetapi tetap tidak sulit, dan Lua terasa jauh lebih ergonomis daripada vimscript
Itu sebabnya saya terus memakai alat seperti ALE
Semoga Anda bahagia memakai Helix juga
Editor lain tetap bisa dipakai, tetapi hampir semua debugging dan konfigurasi berpusat pada vscode, jadi ada suasana yang mendorong orang memakainya
Pengaturan Neovim+treesitter+LSP juga sudah sangat mulus sekarang; mungkin dulu memang sulit, tetapi sekarang bukan isu besar
Jika motivasi pindah ke Helix adalah LSP, saya jadi bertanya-tanya, mungkin sebenarnya penulis memang tidak puas dengan LSP itu sendiri
Salah satu kelemahan pendekatan noun-verb adalah tidak adanya perintah pengulangan (
.)Di Vim kita bisa mengulang aksi seperti
dd..,dap.., tetapi model noun-verb membuat ini sulitLebih mendasar lagi, ada masalah kekurangan tombol
Terlalu banyak operasi dasar yang harus memakai tombol Alt, dan tidak seperti vim, tidak ada mode normal/visual/insert, hanya visual/insert
Bahkan pemisahan motion/objek juga tidak jelas, sehingga tingkat kesulitan pemetaan tombol naik dan masalah kekurangan tombol pun muncul
Dalam praktiknya terasa lebih cocok dengan cara berpikir yang dibutuhkan saat menulis kode
Ini kumpulan plugin buatan echasnovski yang memenuhi beragam kebutuhan sekaligus menjaga konsistensi dan dokumentasi
Sejak nvim 0.12(nightly), cukup memasang mini.nvim dan lspconfig lewat manajer plugin bawaan (vim.pack)
situs resmi mini.nvim
repositori GitHub mini.nvim
Saya memakai neovim tanpa plugin, autocomplete, bahkan tanpa syntax highlighting
Saya merasa disiplin diri melalui pendekatan seperti ini membuat saya menulis kode yang lebih baik
Mungkin ini tidak cocok untuk semua orang, tetapi saya tetap menyarankan untuk mencobanya sekali
Saya juga tidak memakai code action atau goto definition, dan meski kadang ada error real-time, compiler sekarang begitu cepat sehingga itu tidak terlalu berarti
Saya jadi ingin mematikan LSP; saya tidak merasa dibanding 20 tahun lalu, LSP benar-benar meningkatkan kemampuan pemrograman saya secara dramatis
Soal syntax highlighting, saya pikir tema yang terlalu berwarna justru mengganggu fokus dan tidak terlalu bermakna
Saya lebih suka tema monokrom atau dua warna, dan bahkan tidak merasa perlu membedakan warna nama variabel dan nama fungsi
Meski begitu, saya bertanya-tanya apakah keharusan mengingat semuanya tidak menimbulkan kelelahan yang menumpuk, atau apakah cara ini benar-benar menghasilkan kode yang lebih baik
Warna memberi satu lapisan informasi tambahan yang membuat kesalahan atau error di kode lebih mudah terlihat, dan juga mempercepat penelusuran kode
Saya tidak sampai seekstrem itu; saya tetap mempertahankan syntax highlighting dan umpan balik error sintaks lewat LSP
Saya tidak memakai autocomplete atau tautan dokumentasi otomatis
helix-editor.vercel.app
Jauh lebih mudah dibaca daripada dokumentasi resmi, dan penuh tip/trik sehingga bisa membantu mengurangi kekurangan Helix seperti tidak adanya terminal bawaan, sekaligus mempelajari cara edit yang efisien atau keybinding
Untuk pengguna vim lama, saya merekomendasikan kickstart, terutama fork modular kickstart-modular.nvim
kickstart.nvim
Ini titik awal yang sangat minimalis dan bagus
Hanya saja ukurannya cukup besar, jadi saya mengelolanya lebih mudah dengan fold marker untuk melipat bagian-bagiannya
Saya sering tertarik pada Helix karena kemudahan hal-hal seperti LSP dan pengaturan plugin, tetapi tangan saya sudah terlalu terbiasa dengan vi/vim sehingga tidak mudah beralih.