Trình soạn thảo văn bản nặng nề của bạn mất hàng giờ để khởi động? Nó cồng kềnh và thiếu các tính năng cần thiết? 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ó trê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. Nó thực sự tốt đến vậy.
Tiện ích mở rộng Giữ Trình Soạn Thảo Của Tôi Luôn Thú Vị và Cá nhân hóa
Màn hình Neovim hiển thị cửa sổ LazyVim Extras với danh sách các nhóm plugin.
Neovim và khả năng tùy chỉnh là hai yếu tố 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ê không ngừng chia sẻ ý tưởng mới lạ của họ, không bao giờ thiếu “hang thỏ” để tôi khám phá.
Khi rảnh rỗi, 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 để “lãng phí” thời gian của tôi – tôi vừa được khám phá sở thích của mình vừa giải quyết được những điểm khó chịu. Việc giải quyết những vấn đề này, nhìn chung, giúp tôi tăng hiệu quả và làm cho cuộc sống của tôi dễ dàng hơn. Tôi không thể nói hết sự sáng tạo của một số giải pháp này.
Telescope là một trong những tiện ích mở rộng đầu tiên 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) 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 ripgrep trên toàn bộ dự án của mình. Tiềm năng của các tiện ích mở rộng Neovim đã rõ ràng, và tôi đã bị cuốn hút.
Khởi động Nhanh Giúp Tôi Bắt Đầu Viết Ngay Lập Tứ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 của chúng – thường mất hàng phút. Với Neovim, thời gian khởi động chỉ là mili giây, ngay cả 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 lazy-loading riêng; 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, LazyVim vẫn khởi động chỉ khoảng 100 mili giây.
Màn hình chính mặc định của LazyVim trong Neovim hiển thị thống kê thời gian tải và số lượng gói đã tải.
Trước khi sử dụng LazyVim, việc tải các tệp văn bản rất khó khăn, và tôi thường phải quay lại Neovim “thuần” (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ả một 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 Đam mê và Sáng tạo, Không Bao Giờ Giậm chân tại chỗ
Phần mềm có khả năng mở rộng mà 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 năng động gồm những người đam mê kỹ thuật. Cộng đồng này tràn đầy những ý tưởng mới lạ và bí quyết để biến chúng thành hiện thực. Trong khi phần mềm thương mại, chính thống thường bỏ qua những ý tưởng ngách, 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 một dòng chảy vô tận 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 sôi động 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 – như TJ DeVries, một nhà phát triển cho Neovim, và TheVimagen, một người dùng chuyên nghiệp. Tham gia vào những 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 chứ không phải là nghĩa vụ.
Matrix – một nền tảng chat 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 tụ tập. Cuộc trò chuyện không bao giờ dứt, 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 cao.
Thao tác Chuột Làm Tôi Mệt Mỏi; Vim Motions Giúp Tôi Tăng Tốc
Tôi chưa bao giờ thích các giao diện cồng kềnh, và các 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 làm 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 ghi nhớ mà tôi sử dụng để di chuyển 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á, tất cả đều được ánh xạ ghi nhớ và dễ dàng ghi nhớ.
Theo cách điển hình, cộng đồng đã cải thiện motions hơn nữa với tiện ích mở rộng Leap. Leap cho phép tôi nhảy từ vị trí này trên màn hình đến vị trí khác. Để nhảy, tôi nhấn một chuỗi phím ghi nhớ, và nó áp dụng một tập hợp các chú thích phím trên mỗi từ trong tệp văn bản; tôi chỉ cần gõ những phím đó, và nó sẽ nhảy đến vị trí đó.
Cửa sổ Neovim đang mở hiển thị nhiều từ, với một số từ được đánh dấu bằng chú thích màu từ tiện ích mở rộng Leap.
Tôi không còn nghĩ về các thao tác motions nữa giống như việc tôi không nghĩ về hơi thở; chúng đã ăn sâu vào tâm trí tôi đến nỗi tôi chỉ tập trung vào những từ mình gõ. Vim motions trao quyền cho tôi bở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.
Text Objects Giú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 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 các phím bấm, tôi có thể xóa một câu hoặc in 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 tốn công, và mỗi hành động yêu cầu nhiều lần di chuyển và tương tác. 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ỉ làm, và bộ nhớ cơ bắp sẽ tiếp quản.
Trong Neovim, text objects đi 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ó ở 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ý các chi tiết nhỏ khó chịu cho tôi.
Motions và text objects là nền tảng cho trải nghiệm Neovim của tôi. Tôi không thể bày tỏ đủ sự miễn cưỡng của mình khi phải thỏa hiệp về chỉ hai tính năng đó, bởi vì đơn giản là tôi không thể hoạt động 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ả các yêu cầu đó. Liệu bây giờ có phải là thời điểm thích hợp để bắt đầu với Neovim không?
Tài liệu tham khảo:
- dotfyle: https://dotfyle.com/
- https://www.howtogeek.com/why-neovim-is-my-text-editor-of-choice/
- https://www.howtogeek.com/trey-these-linux-text-editors/
- https://www.howtogeek.com/vim-tips-that-will-save-you-hours-of-editing-time/
- https://www.howtogeek.com/essential-linux-text-editing-tools/
- https://www.howtogeek.com/what-is-neovim-get-started-using-it/