Bạn có cảm thấy khó chịu khi trình soạn thảo văn bản nặng nề của mình mất hàng thế kỷ để khởi động? Nó cồng kềnh, thiếu tính năng, và thường xuyên làm gián đoạn dòng chảy công việc của bạn? Đối với tôi, Neovim đã giải quyết vô số vấn đề đến mức 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 của mình – nếu điều đó có nghĩa lý gì. Neovim thực sự tốt đến mức đó, và nó đã trở thành công cụ không thể thiếu trong quy trình làm việc của tôi.
Tùy Biến Không Giới Hạn và Kho Tiện Ích Mở Rộng Đa Dạng
Neovim và khả năng tùy biến là hai khái niệm không thể tách rời. Luôn có một dòng chảy không ngừng của các tiện ích mở rộng mới lạ xuất hiện. Với hàng ngàn người đam mê liên tục chia sẻ những ý tưởng độc đáo của họ, bạn sẽ không bao giờ thiếu những “hang thỏ” để khám phá. Khi cảm thấy buồn 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 để tôi “giết” thời gian – tôi vừa được khám phá sở thích của mình, vừa giải quyết được các điểm đau trong công việc. Nhờ đó, hiệu suất làm việc của tôi được cải thiện và cuộc sống trở nên dễ dàng hơn. Không thể phủ nhận 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ó thực sự làm tôi choáng váng. Telescope cho phép tôi tìm kiếm mờ (fuzzy search) trong các tệp của mình, và lần đầu tiên, tôi 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 đã hiện rõ, và tôi hoàn toàn bị “cuốn hút”.
Màn hình Neovim hiển thị LazyVim Extras với danh sách các nhóm plugin, minh họa khả năng tùy biến và mở rộng của Neovim.
Khởi Động Chớp Nhoáng – Sẵn Sàng Viết Code Ngay Lập Tức
Một trong những khía cạnh đau đầ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 – 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, 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 tải theo yêu cầu 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. Bất kể tôi cài đặt bao nhiêu tiện ích mở rộng, LazyVim vẫn khởi động trong khoảng 100 ms.
Màn hình chính của LazyVim trong Neovim hiển thị thống kê tải ứng dụng với thời gian khởi động 110 mili giây và 33/71 gói đã tải, thể hiện tốc độ ấn tượng.
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 “nguyên bản” (không có tiện ích mở rộng) chỉ để tải các 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ệ mới mà khởi động nhanh hơn một cái chớp mắt. Tất cả điều này đều có thể thực hiện được nhờ vào niềm đam mê của cộng đồng Neovim.
Cộng Đồng Năng Động và Sáng Tạo Không Ngừ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à một phần mềm; nó là một cộng đồng tích cực gồm những người đam mê kỹ thuật. Một cộng đồng như vậy tràn ngập 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 “ngách”, một cộng đồ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 Neovim tương tác. GitHub là kênh chính để tiếp nhận sự sáng tạo của cộng đồng thông qua vô số tiện ích mở rộng mới – bạn có thể tìm thấy nhiều tiện ích mới đó trên dotfyle, một nơi giới thiệu 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 khác, nơi cộng đồng và các nhà sáng tạo tương tác thông qua nội dung giải trí nhưng đầy thông tin – như TJ DeVries, một nhà phát triển của Neovim, và TheVimagen, một người dùng chuyên gia. Việc theo dõi 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 một niềm vui, không còn là một công việc vất vả.
Matrix – một nền tảng chat phổ biến trong cộng đồng FOSS (Phần mềm Tự do và Nguồn mở) – là nơi nhóm 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 thiên về kỹ thuật hơn.
Chuyển Động Vim Motions – Tăng Tốc Độ Xử Lý Văn Bản Vượt Trội
Tôi chưa bao giờ thích những giao diện cồng kềnh, và các thao tác chuột luôn khiến tôi cảm thấy như đang tập thể dục cường độ cao. Việc liên tục chuyển đổi 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 chuỗi 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 tắt ghi nhớ mà tôi sử dụng để di chuyển trên màn hình. Ví dụ, phím W di chuyển về phía trước một từ, và phím B di chuyển lùi về một từ. Có hàng tá các phím tắt như vậy, tất cả đều được ánh xạ một cách ghi nhớ và dễ dàng để ghi nhớ.
Theo đúng phong cách của mình, cộng đồng đã cải thiện các thao tác 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 tắt ghi 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õ những phím đó, và nó sẽ nhảy đến vị trí đó.
Cửa sổ Neovim đang mở hiển thị hàng trăm từ với một số từ được đánh dấu màu, minh họa tính năng nhảy vị trí tức thì bằng Leap extension.
Tôi không còn phải nghĩ về các thao tác di chuyển nữa, chúng đã ăn sâu vào tâm trí tôi đến mức tôi chỉ tập trung hoàn toàn vào những từ mình gõ. Vim motions trao quyền cho tôi vì không có sự gián đoạn nào đối với dòng chảy ý tưởng khi viết hoặc viết code.
Sức Mạnh Của Text Objects – Chỉnh Sửa Với Tốc Độ Tư Duy
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 – 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 nhấn 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 tiêu chuẩn, chỉnh sửa văn bản rất tốn công, và mỗi hành động đòi hỏi nhiều thao tác 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ỉ thực hiện, và bộ nhớ cơ bắp sẽ tiếp quản.
Trong Neovim, text objects còn tiến xa hơn Vim cổ điển một chút vì chúng tích hợp với các tính năng chỉ có trong Neovim, 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 dưới dạng text objects. 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 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 – không có việc sao chép hoặc dán lộn xộn, và nó tự động xử lý những chi tiết nhỏ gây khó chịu cho tôi.
Các thao tác di chuyển và text objects là nền tảng cho trải nghiệm Neovim của tôi. Tôi không thể diễn 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ể hoạt động nếu thiếu chúng. Ngoài ra, khả năng tùy biến 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 cho cùng, thật khó để tìm một giải pháp tốt hơn đáp ứng tất cả những tiêu chí đó. Vậy, đây có phải là thời điểm thích hợp để bắt đầu với Neovim? Chắc chắn rồi! Hãy khám phá và trải nghiệm sự khác biệt mà công cụ này mang lại cho năng suất và hiệu quả công việc của bạn.