Bạn có đang gặp khó khăn với trình soạn thảo văn bản hiện tại của mình, nó khởi động chậm chạp, cồng kềnh và thiếu đi những tính năng mong muốn? Neovim đã giải quyết rất nhiều vấn đề cho tôi đến mức nếu có thể, tôi muốn cài đặt nó lên TV, tủ lạnh, máy nướng bánh mì và thậm chí cả bàn chải đánh răng – nếu điều đó có ý nghĩa. Neovim thực sự tốt đến vậy.
Mở Rộng Vô Hạn – Cá Nhân Hóa Trải Nghiệm Trình Soạn Thảo
Giao diện Neovim hiển thị danh sách các nhóm plugin trong LazyVim Extras, minh họa khả năng tùy chỉnh mạnh mẽ.
Neovim và khả năng tùy chỉnh là hai thứ không thể tách rời, và luôn có một dòng chảy liên tục các tiện ích mở rộng mới xuất hiện. Với hàng ngàn người đam mê không ngừng chia sẻ những ý tưởng độc đáo của họ, tôi không bao giờ thiếu những “lỗ thỏ” để khám phá.
Khi cảm thấy nhàm chán, việc cải thiện quy trình làm việc với Neovim là một cách xây dựng để giết thời gian – tôi được khám phá sở thích của mình trong khi giải quyết các vấn đề gây khó chịu. Giải quyết những vấn đề như vậy nhìn chung giúp cải thiện hiệu quả và làm cuộc sống của tôi dễ dàng hơn. Tôi không thể diễn tả hết sự sáng tạo trong một số giải pháp mà cộng đồng đưa ra.
Telescope là một trong những tiện ích mở rộng đầu tiên mà tôi cài đặt và nó thực sự làm tôi kinh ngạc. Telescope cho phép tôi tìm kiếm mờ (fuzzy search) qua các tệp của mình, và lần đầu tiên, tôi cũng có thể thực hiện tìm kiếm ripgrep trên toàn bộ dự án. Tiềm năng của các tiện ích mở rộng Neovim đã rõ ràng, và tôi đã mê mẩn.
Khởi Động Tức Thì – Bắt Tay Ngay Vào Công Việc
Một trong những khía cạnh khó chịu nhất của các trình soạn thảo văn bản nâng cao là thời gian khởi động lâu – thường mất vài phút. Với Neovim, thời gian khởi động chỉ tính bằng mili giây, và đó là khi đã bao gồm tất cả các tính năng nâng cao.
Tôi sử dụng LazyVim, một bản phân phối Neovim đầy đủ tính năng đi kèm với trình quản lý gói tải lười (lazy-loading) riêng của nó; tức là, một trình quản lý gói chỉ tải các tiện ích mở rộng khi cần thiết. Bất kể tôi cài đặt bao nhiêu tiện ích mở rộng, LazyVim khởi động chỉ trong khoảng 100 ms.
Màn hình chính LazyVim trong Neovim hiển thị thời gian khởi động nhanh chỉ 110ms với nhiều plugin được tải.
Trước khi tôi sử dụng LazyVim, việc tải các tệp văn bản thật khó chịu, và tôi thường quay lại sử dụng Neovim gốc (không có tiện ích mở rộng) chỉ để có thể tải tệp văn bản ngay lập tức. Giờ đây, với LazyVim, tôi có tất cả các tính năng nâng cao của một trình soạn thảo văn bản thế hệ mới khởi động nhanh hơn cả cái chớp mắt. Tất cả điều này có thể thực hiện được nhờ vào niềm đam mê của cộng đồng những người yêu thích Neovim.
Cộng Đồng Năng Động – Nguồn Sức Mạnh Bền Vững
Phần mềm có khả năng mở rộng mà không có cộng đồng thì giống như một nghĩa địa. Neovim không chỉ là phần mềm; đó là một cộng đồng năng động của những người đam mê kỹ thuật. Một cộng đồng như vậy đầy rẫy những ý tưởng mới mẻ và kiến thức để biến chúng thành hiện thực. Trong khi phần mềm chính thống, của các công ty lớn thường bỏ qua những ý tưởng nhỏ, thì một cộng đồng những người đam mê lại phát triển nhờ chúng.
GitHub, YouTube và các máy chủ chat là nơi cộng đồng tụ tập. GitHub là cách chính để tiếp cận sự sáng tạo của cộng đồng thông qua luồng không ngừng các tiện ích mở rộng mới lạ – bạn có thể tìm thấy nhiều tiện ích mở rộng mới đó trên dotfyle, một nơi trưng bày những gì làm cho Neovim trở nên mạnh mẽ.
YouTube là một trung tâm phát triển mạnh mẽ khác nơi cộng đồng và người sáng tạo tương tác qua nội dung giải trí nhưng đầy thông tin – chẳng hạn như TJ DeVries, một nhà phát triển của Neovim, và TheVimagen, một người dùng chuyên nghiệp. Việc theo dõi các cộng đồng sôi động và tương tác này cho phép tôi thường xuyên học hỏi trong khi thư giãn. Niềm đam mê của họ truyền cảm hứng cho tôi, và việc học trở thành niềm vui, không phải là nghĩa vụ.
Matrix – một nền tảng chat phổ biến trong cộng đồng FOSS (Free and Open Source Software) – là nơi đội ngũ phát triển Neovim và các nhà phát triển tiện ích mở rộng thường xuyên hoạt động. Cuộc trò chuyện không bao giờ dừng lại, và không có nơi nào tốt hơn cho những người có khuynh hướng kỹ thuật chuyên sâu hơn.
Thao Tác Bằng Phím (Vim Motions) – Giải Phóng Khỏi Chuột
Tôi chưa bao giờ thích giao diện cồng kềnh, và các thao tác di chuyển chuột khiến tôi cảm thấy như đang tập thể dục cường độ cao. Việc di chuyển qua lại liên tục khi chuyển đổi giữa chuột và bàn phím khiến tôi mệt mỏi cả về thể chất lẫn tinh thần. Việc chuyển đổi ngữ cảnh thường xuyên cũng làm gián đoạn dòng suy nghĩ của tôi. Neovim giải quyết vấn đề này bằng Vim motions.
Vim motions là các chuỗi phím gợi nhớ (mnemonic key sequences) mà tôi sử dụng để di chuyển xung quanh màn hình. Ví dụ, phím W di chuyển tiến một từ, và phím B di chuyển lùi một từ. Có hàng tá chuỗi phím như vậy, tất cả đều được ánh xạ một cách gợi nhớ và rất dễ ghi nhớ.
Theo cách đặc trưng của cộng đồng, họ đã cải thiện thêm các thao tác di chuyển với tiện ích mở rộng Leap. Leap cho phép tôi nhảy từ một vị trí trên màn hình đến một vị trí khác. Để nhảy, tôi nhấn một chuỗi phím gợi nhớ, và nó áp dụng một bộ chú thích phím lên mọi từ trong tệp văn bản; tôi chỉ cần gõ những phím đó, và con trỏ sẽ nhảy đến vị trí đó.
Giao diện Neovim hiển thị văn bản với các chú thích màu từ Leap extension, hỗ trợ thao tác di chuyển bằng phím nhanh chóng.
Tôi không còn suy nghĩ về các thao tác di chuyển nữa, giống như tôi không suy nghĩ về việc hít thở vậy; chúng đã ăn sâu vào tâm trí tôi đến mức tôi chỉ tập trung vào những từ tôi đang gõ. Vim motions giúp tôi làm việc hiệu quả hơn vì không có sự gián đoạn nào đối với dòng ý tưởng khi viết lách hoặc lập trình.
Đối Tượng Văn Bản (Text Objects) – Chỉnh Sửa Nhanh Như Suy Nghĩ
Chỉnh sửa văn bản trong Neovim khác với các trình soạn thảo văn bản khác. Mỗi từ, câu, hoặc đoạn văn là một “đối tượng” mà tôi có thể thực hiện các hành động lên đó – cắt, dán, xóa, hoặc sửa đổi, v.v. Ví dụ, thông qua một chuỗi phím bấm, tôi có thể xóa một câu hoặc viết hoa một từ.
Trong các giao diện tiêu chuẩn, việc chỉnh sửa văn bản rất khó nhọc, và mỗi hành động đòi hỏi nhiều thao tác di chuyển và tương tác. Trong Neovim, điều đó nhanh chóng và dễ dàng. Tôi không nghĩ về cách để chỉnh sửa văn bản; tôi chỉ thực hiện, và bộ nhớ cơ bắp sẽ tiếp quản.
Trong Neovim, các đối tượng văn bản còn tiến xa hơn một chút so với Vim cổ điển vì chúng tích hợp với các tính năng chỉ có trong Neovim, chẳng hạn như Tree-sitter. Tree-sitter hiểu cấu trúc phức tạp của các định dạng tệp văn bản khác nhau và cho phép các tiện ích mở rộng thao tác các phần tử của chúng như các đối tượng văn bản. Khi tôi chỉnh sửa các tệp văn bản có cấu trúc cao, chẳng hạn như code, việc di chuyển các phần tử văn bản hơi giống như sắp xếp lại một danh sách việc cần làm; tôi di chuyển đến đối tượng văn bản thích hợp, nhấn một hoặc hai phím, và nó di chuyển đến vị trí hợp lệ tiếp theo của nó – không có việc sao chép hoặc dán lộn xộn, và nó tự xử lý những chi tiết nhỏ gây khó chịu cho tôi.
Motions và text objects là nền tảng cho trải nghiệm của tôi với Neovim. Tôi không thể diễn tả đủ mức độ mà tôi không sẵn sàng đánh đổi chỉ hai tính năng này, vì tôi đơn giản là không thể làm việc hiệu quả nếu thiếu chúng. Ngoài ra, khả năng tùy chỉnh của Neovim và niềm đam mê của cộng đồng là lý do tại sao tôi có thể duy trì một trình soạn thảo văn bản nâng cao như vậy.
Xét tất cả các yếu tố, thật khó để tìm thấy một giải pháp tốt hơn đáp ứng tất cả những tiêu chí đó. Bây giờ có phải là thời điểm thích hợp để bắt đầu với Neovim?
Tài liệu tham khảo
- https://dotfyle.com/
- https://www.howtogeek.com/why-neovim-is-my-text-editor-of-choice/
- https://www.howtogeek.com/what-is-neovim-get-started-using-it/