Bạn có cảm thấy mệt mỏi khi chờ đợi trình soạn thảo văn bản “khủng” của mình khởi động? Nó chậm chạp và thiếu các tính năng mà bạn thực sự cần? Neovim đã giải quyết rất nhiều vấn đề cho tôi đến nỗi, nếu có thể, tôi sẽ cài đặt nó lên TV, tủ lạnh, lò 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.
Tiện ích mở rộng giữ cho trình soạn thảo của tôi luôn thú vị và được cá nhân hóa
Neovim và khả năng tùy chỉnh là hai khái niệm 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 nghìn người đam mê liên tục chia sẻ những ý tưởng độc đáo của họ, tôi không bao giờ thiếu các “hang 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 vừa có thể khám phá sở thích của mình vừa giải quyết các điểm khó khăn. Việc giải quyết những vấn đề này, nhìn chung, giúp tăng hiệu quả và làm cuộc sống của tôi dễ dàng hơn. Tôi không thể nói hết mức độ sáng tạo của một số giải pháp.
Telescope là một trong những tiện ích mở rộng đầu tiên mà tôi cài đặt, và nó đã làm tôi kinh ngạc. Telescope cho phép tôi tìm kiếm mờ (fuzzy search) trên các tệp của mình, và lần đầu tiên, tôi cũng có thể thực hiện ripgrep trên toàn bộ dự án. Tiềm năng của các tiện ích mở rộng Neovim đã trở nên rõ ràng, và tôi đã bị “móc câu”.
Màn hình LazyVim Extras hiển thị các nhóm tiện ích mở rộng (plugin) trong trình soạn thảo Neovim
Khởi động nhanh giúp tôi bắt tay vào viết code ngay lập tức
Một trong những khía cạnh gây 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); 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. Dù tôi cài đặt bao nhiêu tiện ích mở rộng đi chăng nữa, LazyVim vẫn khởi động trong khoảng 100 mili giây.
Màn hình chính mặc định của LazyVim trong trình soạn thảo Neovim, hiển thị số liệu thống kê tải ứng dụng và thời gian khởi động cực nhanh (110ms)
Trước khi sử dụng LazyVim, việc tải các tệp văn bản khá chậm, và tôi thường phải quay lại Neovim phiên bản gốc (không có tiện ích mở rộng) chỉ để có thể tải tệp 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ệ tiếp theo, khởi động nhanh hơn cả chớp mắt. Tất cả điều này có thể thực hiện được nhờ niềm đam mê của cộng đồng những người yêu thích Neovim.
Cộng đồng đam mê và sáng tạo, không bao giờ trì trệ
Phần mềm có khả năng mở rộng nhưng không có cộng đồng giống như một nghĩa địa. Neovim không chỉ là phần mềm; đó là một cộng đồng những người đam mê kỹ thuật năng động. Cộng đồng này chứa đầy những ý tưởng mới lạ và kiến thức chuyên môn để biến chúng thành hiện thực. Trong khi phần mềm doanh nghiệp chính thống thường bỏ qua những ý tưởng chuyên biệt, một cộng đồng những người đam mê lại phát triển mạnh 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 dòng chảy vô tận các tiện ích mở rộng mới – 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 giới thiệu điều gì làm cho Neovim trở nên mạnh mẽ.
YouTube là một trung tâm sôi động khác, nơi cộng đồng và những 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 Neovim, và TheVimagen, một người dùng chuyên gia. Tham gia vào 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ọ lan tỏa sang tôi, và việc học trở thành niềm vui, không phải gánh nặng. Nền tảng chat Matrix – một nền tảng phổ biến trong cộng đồng FOSS – 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 trao đổi. Cuộc trò chuyện không bao giờ cạn, và không có nơi nào tốt hơn cho những người có thiên hướng kỹ thuật.
Thao tác chuột làm tôi mệt mỏi; Thao tác Vim giúp tôi tăng tốc
Tôi chưa bao giờ thích giao diện rườm rà, và thao tác chuột giống như một buổi tập cardio cường độ cao. Việc liên tục di chuyển qua lại giữa chuột và bàn phím gây 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 các thao tác Vim (Vim motions).
Thao tác Vim là các chuỗi phím gợi nhớ mà tôi sử dụng để di chuyển quanh màn hình. Ví dụ, phím W
di chuyển tới một từ, và phím B
di chuyển lùi một từ. Có hàng chục thao tác như vậy, tất cả đều được ánh xạ theo cách gợi nhớ và dễ dàng ghi nhớ.
Theo phong cách đặc trưng, cộng đồng đã cải tiến các thao tác này hơn nữa 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 trên mỗi từ trong tệp văn bản; tôi chỉ cần gõ các phím đó, và con trỏ sẽ nhảy đến vị trí đó.
Cửa sổ trình soạn thảo Neovim hiển thị văn bản với các chú thích màu từ tiện ích mở rộng Leap, minh họa khả năng di chuyển tức thời bằng thao tác phím tắt Vim
Tôi không còn nghĩ về các thao tác này nữa, giống như tôi không nghĩ về việc hít thở; chúng đã ăn sâu vào tâm trí đến mức tôi chỉ tập trung hoàn toàn vào những từ mà tôi gõ. Thao tác Vim trao quyền cho tôi vì không có sự gián đoạn nào đối với dòng ý tưởng khi viết hoặc lập trình.
Đối tượng văn bản cho phép tôi chỉnh sửa với tốc độ suy nghĩ
Chỉnh sửa văn bản trong Neovim khác với các trình soạn thảo 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 các lần gõ phí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 chuẩn, việc chỉnh sửa văn bản tốn nhiều công sức, và mỗi hành động đòi hỏi nhiều lần di chuyển và tương tác (như bôi đen, click chuột phải, chọn menu). Trong Neovim, nó 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à trí nhớ cơ bắp tiếp quản.
Trong Neovim, các đối tượng văn bản còn tiến xa hơn 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 thành phần 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ần sao chép hay dán lộn xộn, và nó tự xử lý các chi tiết nhỏ gây khó chịu cho tôi.
Các thao tác Vim và đối tượng văn bản là nền tảng cho trải nghiệm Neovim của tôi. Tôi không thể bày tỏ hết mức độ tôi không sẵn lòng thỏa hiệp với hai tính năng này, bởi 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 tiên tiến như vậy.
Xét mọi khía cạnh, thật khó để tìm một giải pháp tốt hơn đáp ứng tất cả những yêu cầu đó. Vậy bây giờ có phải là thời điểm tốt để bắt đầu sử dụng Neovim không?