- Bản cập nhật lớn bao gồm cải tiến mạnh cho ngôn ngữ script Vim9, chế độ diff được nâng cấp, tính năng tự động hoàn thành đầy đủ, hỗ trợ Wayland ở mức thử nghiệm và nhiều thay đổi khác
- Tự động hoàn thành trong chế độ nhập được tăng cường với khớp mờ, hoàn thành từ dựa trên thanh ghi, và các tùy chọn
completeopt mới
- UI theo từng nền tảng được cải thiện với hỗ trợ Wayland UI và clipboard, bảng tab dọc, chế độ tối native trên Windows
- Các tính năng ngôn ngữ như Enums, hàm Generic, kiểu Tuple được mở rộng, có thể dùng cả cho phát triển plugin dựa trên AI
- Ngay cả sau khi Bram Moolenaar qua đời, Vim vẫn giữ triết lý Charityware, và tổ chức tiếp nhận hỗ trợ đã được chuyển sang Kuwasha
Các cải tiến chính
- Tăng cường tính năng tự động hoàn thành
- Hỗ trợ khớp mờ trong chế độ nhập, và có thể hoàn thành từ trực tiếp từ thanh ghi (
CTRL-X CTRL-R)
'completeopt' được bổ sung các tùy chọn nosort, nearest để kiểm soát chi tiết cách sắp xếp kết quả
- Cải tiến nền tảng và UI
- Hỗ trợ đầy đủ Wayland UI và clipboard
- Trên Linux/Unix, tuân thủ XDG Base Directory Specification và dùng
$HOME/.config/vim làm đường dẫn cấu hình
- Bổ sung bảng tab dọc, Windows GUI hỗ trợ chế độ tối cho menu và thanh tiêu đề cùng biểu tượng độ phân giải cao
- Bổ sung tính năng hỗ trợ học tập
- Plugin hướng dẫn tương tác mới chạy bằng lệnh
:Tutor được giới thiệu, mang lại trải nghiệm học hiện đại hơn so với vimtutor trước đây
Mở rộng ngôn ngữ script Vim9
- Củng cố cấu trúc ngôn ngữ
- Nay hỗ trợ Enum, hàm Generic, kiểu dữ liệu Tuple
- Các hàm dựng sẵn được tích hợp thành phương thức đối tượng, và class hỗ trợ phương thức
_new() được bảo vệ cùng biên dịch phương thức đầy đủ thông qua :defcompile
- Tích hợp với công cụ AI
- Hai dự án ví dụ sử dụng GitHub Copilot đã được công bố
- Battleship in Vim9: hiện thực trò chơi kinh điển bằng class
- Number Puzzle: câu đố logic dưới dạng plugin tương tác
Cải tiến chế độ Diff
- Thuật toán Linematch
- Mới được thêm vào thiết lập
'diffopt', giúp căn chỉnh các thay đổi giữa những dòng tương tự và cải thiện độ chính xác khi highlight
- Diff Anchors
- Tùy chọn
'diffanchors' cho phép chỉ định điểm neo để căn chỉnh diff theo từng đoạn trong các tệp phức tạp
- Inline Highlighting
- Hiển thị chi tiết các thay đổi trong cùng một dòng, có thể điều khiển bằng tùy chọn con
"inline"
"inline:simple" được đưa vào giá trị 'diffopt' mặc định
Thay đổi giá trị mặc định
- Nhiều giá trị cấu hình mặc định đã được cập nhật để phù hợp với môi trường hiện đại
'history': 50 → 200
'backspace': giá trị rỗng → "indent,eol,start"
'diffopt': "internal,filler" → "internal,filler,closeoff,indent-heuristic,inline:char"
'fontsize' (GTK): 10pt → 12pt
'showcmd', 'ruler': đổi sang mặc định Bật
Cải tiến khác và sửa lỗi
- Nhiều lỗ hổng bảo mật, rò rỉ bộ nhớ, và lỗi crash kể từ Vim 9.1 đã được khắc phục
Chuyển đổi hoạt động từ thiện
- ICCF Holland giải thể
- Sau khi nhà sáng lập Bram Moolenaar qua đời, quỹ không thể tiếp tục duy trì nên đã giải thể
- Số tiền còn lại đã được chuyển để hỗ trợ dự án Kibaale
- Hợp tác với Kuwasha
- Tổ chức Kuwasha có trụ sở tại Canada tiếp quản các dự án tại Uganda và tiếp tục tài trợ
- Charityware tiếp tục được duy trì
- Vim vẫn được duy trì dưới hình thức Charityware, và người dùng có thể quyên góp qua Kuwasha
Lời cảm ơn và phát hành
- Gửi lời cảm ơn tới tất cả những người đã đóng góp thông qua bản vá, bản dịch, báo lỗi và nhiều hình thức khác
- Phiên bản mới nhất có trên trang Download
1 bình luận
Ý kiến trên Hacker News
Thật vui khi thấy Vim9 vẫn tiếp tục phát triển
Dù có vẻ như trọng tâm đã phần nào chuyển sang phía Neovim, nhưng hệ sinh thái Neovim dường như tập trung vào những người muốn một môi trường kiểu IDE
Điều tôi tò mò là liệu sẽ có nhiều tác giả plugin chuyển sang Vim9Script hơn không. Phần lớn người dùng Neovim đã chuyển sang plugin dựa trên Lua, nên có vẻ động lực hỗ trợ cả hai bên đã giảm đi
Đặc biệt là tôi rất vui vì đã có thêm hỗ trợ tuple
Cả Elisp lẫn Vimscript đều quá gò bó với tôi
Dù vậy, nếu có quyền chọn, có lẽ tôi vẫn muốn một ngôn ngữ khác chứ không phải Lua
Điều ấn tượng là Vim đã được duy trì theo mô hình Charityware suốt hơn 30 năm
Sau khi Bram Moolenaar qua đời, quỹ ICCF Holland đã giải thể, nhưng số tiền còn lại được chuyển để tiếp tục hỗ trợ dự án Kibaale ở Uganda
Tôi chọn vim vì lý do kỹ thuật, nhưng sau khi biết Bram đã duy trì những hoạt động quyên góp này với thiện ý, tôi càng thấy trân trọng hơn
Cuối cùng việc nó đã có sẵn trong bản phân phối Linux thì mọi người cứ lặng lẽ bỏ qua
Dù vậy, tôi hoàn toàn ủng hộ ý nguyện của Bram
Tôi là fan của vim nhưng cuối cùng đã chuyển sang nvim
Thành thật mà nói, tôi ước những người bảo trì vim có thể tìm ra cách nào đó để hợp nhất với nvim
Nó hoạt động giống hệt nhau trên máy cục bộ, Raspberry Pi và VM Ubuntu 20.04 của tôi
Điểm cốt lõi của Vim là sự đơn giản và nhất quán, nên nếu muốn nhiều tính năng hơn thì thà dùng vscode với tiện ích mở rộng vim còn hơn
Tôi từng thử nvim trước đây nhưng không thấy lợi ích lớn nào, rồi bỏ vì lệnh
:shhoạt động khác điCá nhân tôi thích hướng đi của vim9
Thành thật mà nói tôi ghét Lua. Việc toàn bộ hạ tầng đều chuyển sang Lua gần như là điều không thể tránh khỏi
May mà hỗ trợ XDG đã được giải quyết
init.nvimđọc~/.vimrclà ổnMức độ mà người ta có thể đùa kiểu “Tính năng AI đâu rồi?” khiến bản phát hành này mang lại cảm giác mới mẻ như một bản cập nhật lớn không có AI
Đó cũng là lý do trước đây tôi chuyển sang Sublime Text, và giờ nó là tính năng không thể thiếu với tôi trong VSCode hay Zed
Có plugin thật đấy, nhưng nếu được hỗ trợ mặc định thì chắc sẽ mạnh hơn nhiều
Trước đây đã từng có thời Bram Moolenaar từ chối cập nhật vim cho đến khi Neovim xuất hiện
Tôi thấy lạ vì danh sách tag GitHub không có tag v9.2
Sau một thời gian dài quan tâm, cuối cùng tôi cũng bắt đầu học vim một cách nghiêm túc
Nhờ AI mà tôi có thời gian trống giữa các yêu cầu để học, và việc nhờ IDE hay AI xử lý những chỉnh sửa đơn giản lại thấy còn chậm hơn
Nhờ quy trình làm việc agentic mà tôi có thể xử lý các chỉnh sửa chi tiết và công việc lặp lại nhanh hơn nhiều
Trước đây tôi là người tích cực truyền bá vim, nhưng giờ giải quyết hầu hết lỗi bằng lệnh giọng nói và chỉnh sửa bằng AI
Dù vậy, tôi vẫn rất yêu triết lý của vim
Thật vui khi biết vim vẫn tiếp tục phát triển
Windows GUI giờ đã hỗ trợ chế độ tối, chế độ toàn màn hình được cải thiện và biểu tượng độ phân giải cao
Xin chúc mừng bản phát hành mới, tôi rất mong đến ngày được áp dụng những cải tiến tuyệt vời này