Ki Editor vừa trồi lên Hacker News với cơ chế edit thẳng vào AST, nhưng lại gáy to chê keymap của Vim là rác, khiến giang cư mận combat nảy lửa.

Dạo này anh em mải combat xem VSCode cắn RAM hay Neovim gõ sướng tay, thì trên Hacker News vừa ngoi lên một con hàng khá dị: Ki Editor. Thằng này không chơi với text thuần túy như cách chúng ta vẫn gõ code hàng ngày, mà nó thao tác thẳng lên AST (Abstract Syntax Tree). Ảo ma chưa? Nhưng chuyện chưa dừng ở đó, drama nổ ra khi tác giả quyết định đụng chạm đến bát cơm của các pháp sư Vim.
Cha đẻ của Ki Editor phân loại các editor hiện tại thành mấy dạng: loại truyền thống (trọng ngoại hình như VSCode), loại xài mode (Vim), và loại "tái định nghĩa" (chính là Ki). Thay vì dùng chuột bôi đen hay gõ phím di chuyển từng ký tự như mấy tay dân thường, Ki Editor ưu tiên thao tác trực tiếp trên các node cú pháp (First-class syntactic selection).
Nghe thì xịn xò con bò, nhưng khúc cua gắt nằm ở chỗ tác giả công khai chê bai keymap của Vim và Helix. Lão bảo phím tắt của Vim đ*o có logic gì cả, lúc thì chữ hoa chữ thường, lúc thì ngoặc trái ngoặc phải, tóm lại là lộn xộn. Thế là lão đẻ ra một bộ keybinding mới, tự phong là "hợp lý và khoa học hơn". Động vào ổ kiến lửa thực sự!
Quả "gáy to" này lập tức thu hút mấy bô lão trên Hacker News vào tế sống. Có vài luồng quan điểm đang chiếm sóng mà đọc xong chỉ biết cười bò:
1. Các giáo chủ Vim/Neovim tự ái: Một vãn bối phe Vim nhảy vào combat ngay tắp lự: "Phím tắt của Vim rành rành ra đấy, tao nói chuyện với editor mượt như rót mật vào tai, chê đo gì?"*. Thanh niên này còn chửi xéo tác giả Ki chắc chắn xuất thân từ "tà đạo" VSCode, kiểu người quen lái xe số tự động xong nhảy lên xe số sàn rồi chê xe khó lái. Chưa hết, lão còn phán câu xanh rờn: "Cái trò multi-cursor (con trỏ đa luồng) của VSCode là rác rưởi, xài mẹ Search/Replace với Macro đi cho não nó to ra."
2. Phe JetBrains "Tao làm từ đời tống":
Mấy anh em cày IDE của JetBrains (như IntelliJ, WebStorm) thì ngồi cười khẩy. Cái trò "Syntactic selection" này thực ra chính là cụm phím Ctrl + W (Expand Selection) huyền thoại. Kết hợp với vụ Extract Method thì refactor code nhanh như chớp. Nhóm Neovim cũng gáy phụ: "Bọn tao xài tree-sitter cũng làm trò này mượt từ tám kiếp rồi!"
3. Pháp sư khổ dâm cày Plugin:
Có tay ném đá giấu tay hỏi: "Sao không viết mẹ cái plugin cho Vim đi, đẻ editor mới làm gì?". Thế là lòi ra mấy thanh niên đang rục rịch làm ki-bindings.nvim. Nhưng toang ở chỗ, Neovim méo hỗ trợ cái "Selection Mode" như Ki. Ki nó còn xài cả Kitty keyboard protocol để nhận diện thao tác đè phím (ví dụ giữ c và k cùng lúc để copy và duplicate dòng). Muốn mang cái này sang Neovim thì phải móc lõi kiến trúc ra sửa, hiện mấy dev đang phải code workaround bằng đủ thứ ma giáo.
4. Các trưởng lão Emacs: "Bất cứ tính năng nào mày mới nghĩ ra, Emacs đã có một package từ thập niên 80." Vâng, muôn đời vẫn vậy.
Sáng tạo trong công cụ kiếm cơm là tốt, thao tác trên AST rõ ràng là xu hướng giúp refactor mượt hơn và ít bug vặt hơn. Rất may là có một pháp sư đã viết sẵn cái VSCode extension cho Ki, nên anh em có thể cài vào test thử xem có hợp phong thủy không.
Nhưng mà này, bắt dev vứt bỏ cái muscle memory (trí nhớ cơ bắp) cày cuốc cả chục năm trời chỉ để học một bộ keymap "có logic theo ý tác giả" thì rủi ro cao là sập server do gõ nhầm. Thích thì vọc cho biết, chứ dùng để cày project kiếm cơm thì cứ xài đồ quen đi cho nó lành anh em ạ.
Nguồn hóng hớt: Hacker News