Fish Shell 3.7.0: Duy trì C++ trong khi mang lại những cải tiến
Fish Shell 3.7.0 cải thiện bộ xem lịch sử, hiệu suất và scripting. Các phiên bản 4.x trong tương lai sẽ chuyển các thành phần nội bộ của Fish sang Rust.
Trong hệ sinh thái Linux, một tính năng nổi bật về tính linh hoạt và mạnh mẽ là sự đa dạng của các shell mà người dùng có thể lựa chọn.
Cùng với Bash cổ điển và các shell khác như Zsh và Tcsh, Fish đã được nhiều người dùng Linux công nhận và sử dụng rộng rãi như một lựa chọn hàng đầu nhờ cách tiếp cận thân thiện với người dùng và các tính năng tiên tiến trong một thời gian dài.
Phiên bản Fish 3.7.0 vừa được công bố, với hơn 1289 cam kết, củng cố vị thế này, hứa hẹn những cải tiến và sửa lỗi. Hãy cùng xem qua chúng.
Fish Shell 3.7.0
Điểm nổi bật chính
Fish 3.7.0 cải thiện việc quản lý lịch sử dòng lệnh. Giờ đây, người dùng có thể dễ dàng tìm các dòng lệnh phức tạp nhờ các khớp theo chuỗi con. Trình xem lịch sử cũng giới thiệu một tính năng tìm kiếm thông minh hơn và cách xử lý các truy vấn tìm kiếm không khớp trực quan hơn.
Về hiệu suất, việc hoàn thành lệnh và globbing thấy sự cải thiện tốc độ đáng kể, đặc biệt trên các hệ thống tệp chậm như NFS, điều này là một thắng lợi lớn cho người dùng phải xử lý khối lượng công việc dòng lệnh nặng.
Một tính năng nổi bật khác trong bản cập nhật này là khả năng thiết lập thời gian chờ cho các chuỗi phím đa nút, giúp cải thiện khả năng sử dụng các tính năng như chuyển đổi chế độ trong chế độ vi. Đồng thời, LS_COLORS sẽ không còn được thiết lập tự động, khuyến khích người dùng áp dụng các cấu hình cá nhân hóa hơn.
Cải tiến về lập trình kịch bản và dòng lệnh
- Ổn định và Linh hoạt: Fish 3.7.0 giải quyết một số lỗi và cải thiện trải nghiệm lập trình script. Từ việc sửa các tình huống gây treo cho đến nâng cao lệnh ‘jobs‘ tích hợp sẵn, bản cập nhật giúp việc lập trình script trở nên đáng tin cậy và đa năng hơn.
- Trải nghiệm tương tác: Bản cập nhật mang đến những thay đổi đáng kể cho trải nghiệm tương tác, như cải thiện tìm kiếm lịch sử ở chế độ vi, báo cáo thư mục làm việc tốt hơn trong iTerm2 và nâng cao cấu hình màu sắc khi chọn.
- Hoàn thành lệnh và cải tiến gợi ý: Fish 3.7.0 cũng giới thiệu một chức năng bind mới để quản lý lịch sử, cải thiện thông báo lỗi và mở rộng hỗ trợ cho các lệnh bên ngoài.
Điều chỉnh thẩm mỹ và khả năng sử dụng
Giao diện mặc định hiện nay sử dụng màu được đặt tên, phù hợp với bảng màu của terminal, và giao diện Dracula đồng bộ với các thay đổi từ nguồn gốc. Ngoài ra, các lời nhắc hiển thị thư mục làm việc chính xác hơn.
Cuối cùng, Fish 3.7.0 bổ sung rất nhiều gợi ý hoàn thành cho các lệnh khác nhau, giúp cuộc sống của người dùng trở nên dễ dàng hơn. Bản phát hành này cũng cải thiện các trình tạo gợi ý hoàn thành trang hướng dẫn, và một số tinh chỉnh hoàn thành khác cũng đã được thực hiện.
Rust: Con Đường Phía Trước
Shell Fish chủ yếu được lập trình bằng C++. Tuy nhiên, điều này sẽ sớm thay đổi.
David Adam, một trong những nhà phát triển chính của Fish, đã xác nhận rằng gần như toàn bộ mã C++ đã được chuyển đổi thành công sang Rust. Việc chuyển đổi này đã thêm 87.029 dòng mã Rust trong khi loại bỏ tất cả 76.776 dòng mã C++, đánh dấu việc viết lại 100% theo cập nhật mới nhất của họ.
Tuy nhiên, anh ấy làm rõ rằng cột mốc này không có nghĩa là phiên bản mới của Fish shell đã sẵn sàng cho người dùng cuối. Tình trạng hiện tại của dự án là đầy hứa hẹn, với một số cải thiện về hiệu suất, nhưng nó cũng gặp phải những thách thức ở một số lĩnh vực.
Đáng chú ý, bản viết lại vẫn chưa đạt được các mục tiêu kỹ thuật của nó, đặc biệt là về an toàn luồng, điều vốn là động lực chính để chuyển sang Rust.
Ngoài ra, việc hỗ trợ nền tảng vẫn là một trở ngại đáng kể. Hỗ trợ ngắn hạn cho các nền tảng như Cygwin và MSys2 dường như không khả thi, và việc đóng gói cho các bản phân phối Linux cũ gặp nhiều thách thức.
Xem xét điều này, loạt Fish thứ ba hiện tại sẽ tiếp tục sử dụng C++ cho việc lập trình. Nhưng khi ra mắt loạt thứ tư, dự kiến nó sẽ có sự thay đổi đáng kể bằng cách chuyển ngôn ngữ lập trình chính sang Rust.

