- Helix adalah editor teks modal berbasis terminal, sebuah proyek open source yang mengintegrasikan fitur-fitur modern
- Melalui integrasi Tree-sitter, Helix menyediakan fitur pengeditan sadar sintaks seperti penyorotan sintaks, perhitungan indentasi, dan navigasi kode
- Mendukung Language Server Protocol untuk menghadirkan fitur setingkat IDE seperti auto-complete, go to definition, melihat dokumentasi, dan diagnostik
- Ditulis dengan Rust, berjalan tanpa Electron atau JavaScript, dan dapat digunakan secara efisien di lingkungan SSH·tmux·terminal
- Sistem plugin dan frontend GUI direncanakan untuk dikembangkan ke depan, dengan ciri codebase ringan dan konfigurasi bawaan modern
Fitur utama
- Helix menggunakan sistem multi-seleksi dan kursor yang terinspirasi dari Kakoune sebagai unit inti pengeditan
- Perintah dapat memanipulasi beberapa area pilihan sekaligus sehingga memungkinkan pengeditan kode paralel
- Menggunakan Tree-sitter untuk membangun pohon sintaks yang toleran terhadap kesalahan
- Ini memungkinkan penyorotan sintaks yang akurat, indentasi otomatis, dan navigasi kode
Fitur manipulasi dan navigasi kode
- Menyediakan fungsi pemilihan dan perpindahan berdasarkan node pohon sintaks seperti fungsi, kelas, dan komentar
- Memungkinkan pengeditan berbasis struktur sintaks, bukan sekadar teks biasa
- Melalui Language Server Protocol (LSP), Helix menyediakan auto-complete, go to definition, melihat dokumentasi, dan diagnostik untuk tiap bahasa
- Fitur setingkat IDE dapat digunakan di lingkungan terminal tanpa konfigurasi tambahan
Fondasi teknis
- Ditulis dengan Rust untuk memastikan stabilitas dan performa
- Tidak menggunakan Electron, VimScript, atau JavaScript
- Dapat berjalan di SSH, tmux, dan terminal biasa
- Struktur yang ringan membantu meningkatkan efisiensi baterai
Fitur modern bawaan
- Mendukung penelusuran file dan simbol dengan fuzzy finder, serta pencarian di seluruh proyek
- Menyertakan berbagai fitur kenyamanan seperti penutupan kurung otomatis, integrasi surround, dan kustomisasi tema
- Dirancang dengan fitur bawaan yang kaya dan terintegrasi tanpa perlu plugin terpisah
Pertanyaan yang sering diajukan
- Ungkapan “postmodern” adalah lelucon yang berarti jika Neovim adalah ‘Vim modern’, maka Helix adalah generasi setelahnya
- Frontend GUI direncanakan akan dikembangkan sebagai prototipe berbasis WebGPU
- Saat ini sistem plugin belum diimplementasikan, tetapi ada rencana untuk menambahkannya di masa depan
- Perbedaannya dengan Kakoune adalah Helix memiliki lebih banyak fitur bawaan dan menggunakan analisis kode berbasis Tree-sitter
- Berbeda dengan Vim, Helix dirancang ulang dari awal dengan codebase kecil dan menyediakan nilai default modern yang meminimalkan penyesuaian file konfigurasi
Komunitas dan partisipasi
- Kontribusi kode tersedia melalui GitHub
- Diskusi proyek berlangsung di kanal Matrix
- Dukungan pengembangan dapat diberikan melalui OpenCollective
1 komentar
Komentar Hacker News
Tertarik setelah melihat lelucon “Post-modern?!”
Banyak engineer memahami ‘postmodern’ hanya sebagai tahap setelah modern, padahal itu berbeda dari makna aslinya dalam seni dan humaniora
Tentu pemakaian seperti ini bukan masalah besar, tapi tetap menonjol karena saya sempat berharap ada kreativitas yang benar-benar ‘postmodern’
Namun karena ‘postmodernism’ pada dasarnya memang konsep yang muncul sebagai respons setelah modernism, saya rasa tafsir sederhana sebagai “setelah modern” juga tidak sepenuhnya salah
Hanya saja, seiring waktu maknanya jadi jauh lebih kompleks, dan sekarang justru lucu karena terasa seperti “dated af”
“Helix, editor pertama yang tidak percaya pada metanarasi. Helix, editor yang relativistik. Helix, kini dilengkapi update terbaru Foucault dan Derrida”
Sudah beberapa tahun saya memakai Helix sebagai editor utama (Sublime → Atom → Vim → Helix)
Sebagian besar LSP bekerja hampir tanpa konfigurasi, dan file konfigurasinya juga jauh lebih ringkas dibanding .vimrc lama
Hanya butuh beberapa hari untuk mengubah muscle memory Vim, tapi saya masih punya perasaan campur aduk terhadap editor modal
Saya masih menunggu fitur code folding
Di Emacs, dengan plugin berbasis multiple cursors dan treesitter, editing non-modal juga bisa sangat kuat
Saya jadi penasaran apakah mode modal di Helix terasa tidak nyaman karena alasan serupa
Di keyboard Unix lama posisinya dekat home row, tapi sekarang terlalu jauh
Saya tidak paham kenapa lebih dari separuh pengguna masih tetap memakai Escape, padahal kebanyakan tutorial bahkan tidak menyebut tombol alternatif
Beberapa hari lalu saya mencoba Helix lagi; saya bisa menerima bahwa AI hanya bisa dipakai lewat LSP, tetapi
tidak adanya auto-refresh saat file berubah dari luar terasa sangat merepotkan
Saya jadi terus khawatir apakah file yang diubah AI benar-benar versi terbaru
Pendekatan seperti ini jauh lebih stabil dan menarik
Sebaliknya, ada tool AI yang bilang “IDE tidak diperlukan” dan mendorong alur kerja berbasis CLI; menurut saya itu benar-benar omong kosong
:reloaddan:reload-allSaya mengikat
Ctrl-rke reload-allOpsi lain adalah mux, yang memungkinkan Anda mengomentari perubahan yang diusulkan LLM per baris atau per blok (masih versi awal)
Saat bekerja dengan Claude Code, saya suka file tidak berubah otomatis
Vim itu seperti C, Helix seperti C++, dan Ki Editor seperti Rust
Helix mewarisi banyak ide dari Vim, tetapi konsistensi keybinding-nya kurang dan kombinasi konseptualnya juga lemah
Misalnya, di buffer bergerak dengan
k, tapi di file explorer harus memakaictrl+nkdipakai sebagai karakter input sehingga harus memakai tombol lainMungkin di Helix alasannya sama
Kalau login lewat SSH dan layout keyboard-nya berbeda, bagaimana jadinya?
Saya benar-benar ingin menyukai Helix
Default-nya bagus, dan saya sengaja meninggalkan beberapa kebiasaan Vim untuk mempelajarinya
Tapi pada akhirnya saya sampai pada kesimpulan bahwa keybinding-nya adalah kompromi demi implementasi yang lebih sederhana
Sekarang saya kembali ke Neovim untuk edit kecil, dan Zed(mode vim) untuk pekerjaan besar
Misalnya, saat membuka ulang file, kursor tidak kembali ke posisi sebelumnya
Saya memang bisa memperbaikinya dengan LLM, tapi pada akhirnya saya tidak ingin memelihara fork Helix
Sangat sulit membuang muscle memory yang sudah dibangun selama bertahun-tahun
Menurut saya kombinasi hx + Zed cukup luar biasa
Karena Helix tidak mendukung live file update, editor ini kurang nyaman dipakai bersama code agent
Disarankan melihat pertanyaan kedua di FAQ Helix
LSP Python yang langsung berjalan tanpa konfigurasi sangat mengesankan
Tetapi karena muscle memory Vim saya terbentuk selama 25 tahun, perbedaan halus di Helix terasa sangat membingungkan
Pada akhirnya masalahnya bukan Helix, melainkan muscle memory saya
Mungkin Vim dan Helix juga bisa begitu
M-ESC ESCdi-bind ke perintah yang tidak berbahaya, Anda bisa menghindari masalah jendela tertutupContoh:
(global-set-key (kbd "M-ESC ESC") 'keyboard-quit)Setelah terbiasa dengan perbedaan seperti
dddanG, lama-lama jadi makin sukaSelama beberapa tahun terakhir saya memakai Helix sebagai editor default
Saya terutama menyukai kesederhanaannya, kecepatannya, navigasi yang berpusat pada keyboard, dan integrasi Elixir LSP
Saya memakai Helix sebagai editor utama dan sudah mendeploy banyak kode dengannya
File konfigurasinya bahkan tidak sampai 50 baris, dan saya hanya menambahkan beberapa tombol Vim
Berpindah antara Vim dan Helix juga bukan masalah besar
Konfigurasi saya ada di sini
Saya pernah membuat sendiri ekstensi mode modal langsung di VS Code, dan pendekatan Kakoune serta Helix terasa menarik
Struktur yang “menunjukkan dulu bagian yang akan diubah” dan desain yang berpusat pada multi-cursor terasa masuk akal
Tapi setelah beberapa minggu, saya akhirnya kembali ke gaya Vim klasik
Pendekatan multi-cursor hanya berguna saat semua perubahan bisa terlihat di layar
Akhir-akhir ini, berkat AI, saya lebih banyak menulis kalimat daripada menulis kode, jadi nilai dari gaya editing seperti ini terasa berkurang
mc-hide-unmatched-linesyang bisa menampilkan hanya baris yang memiliki kursorMulti-cursor bagus untuk edit singkat dan sederhana, tetapi untuk perubahan kompleks, tool batch editing lebih efisien
untuk mengatasi masalah kursor yang berada di luar layar