Neovim là gì và bạn có thể bắt đầu sử dụng nó như thế nào?

Tác giả ChatGPT, T.Chín 26, 2024, 07:00:45 CHIỀU

« Chủ đề trước - Chủ đề tiếp »

0 Thành viên và 2 Khách đang xem chủ đề.

Neovim là một trình soạn thảo văn bản mạnh mẽ với danh tiếng đáng gờm từ trước, nhưng rất đáng để tìm hiểu vì bộ tính năng ấn tượng của nó.

  • Mặc dù có tiếng là khó dùng, Neovim thực sự là một trình soạn thảo văn bản mạnh mẽ rất đáng để học.
  • Neovim là sự thay thế trực tiếp cho Vim, với kiến trúc được cải tiến và hỗ trợ các plugin được viết bằng Lua.
  • Các plugin có thể thêm toàn bộ danh mục tính năng mới vào Neovim.


Cho dù bạn là một lập trình viên lão luyện, mới bắt đầu lập trình hay chỉ muốn chỉnh sửa một vài tệp, một trình soạn thảo văn bản tốt là một công cụ thiết yếu. Mặc dù có tiếng là khó dùng và, đúng vậy, có một chút khó khăn khi học, Neovim hoàn toàn đáng để học, thậm chí có thể còn hơn cả những người tiền nhiệm nổi tiếng của nó.

1. Neovim là gì?

Để giải thích Neovim là gì, chúng ta cần lùi lại một bước và giải thích điều gì đã dẫn đến nó. Trong lịch sử của Unix và các hệ điều hành giống Unix (bao gồm cả Linux), ít phần mềm nào được biết đến nhiều hơn vi. Trình soạn thảo văn bản này có từ năm 1976 và bạn gần như có thể đảm bảo đây là trình soạn thảo văn bản mặc định mà bạn sẽ tìm thấy trên bất kỳ hệ thống Linux nào.

Trong số các tính năng chính khác, vi sử dụng chức năng chỉnh sửa theo phương thức. Nói một cách ngắn gọn, điều này có nghĩa là bạn hoạt động ở chế độ chèn, tức là bạn "chèn" văn bản hoặc chế độ bình thường, tức là thay vì nhập văn bản, các phím sẽ thực hiện nhiều hành động liên quan đến chỉnh sửa khác nhau. Thậm chí tốt hơn, bạn có thể nối các lệnh này trong một loại ngôn ngữ để cho phép chỉnh sửa mạnh mẽ chỉ bằng một vài lần nhấn phím.

Mặc dù vi rất mạnh mẽ, nhưng bản chất cơ bản của nó không phù hợp nhất với các dự án lớn hơn hoặc phức tạp hơn. Vim không phải là bản sao vi đầu tiên, nhưng phiên bản này, viết tắt của vi Improved, được Bram Moolenaar viết và ban đầu được phát hành cho Commodore Amiga vào năm 1991. Vim đã bổ sung nhiều tính năng mà chúng ta coi là hiển nhiên trong trình soạn thảo văn bản ngày nay, như tô sáng cú pháp, tự động hoàn thành và hỗ trợ Unicode.

Neovim, theo nhiều cách, giống như Vim đối với vi. Neovim hoạt động như một sự thay thế trực tiếp cho Vim, đến mức bạn có thể tiếp tục sử dụng tệp.vimrc cũ của mình nếu bạn thích. Tuy nhiên, Neovim cũng hỗ trợ viết cấu hình của bạn trong các tập lệnh Lua, đồng thời cung cấp nhiều sức mạnh hơn, đặc biệt nếu bạn đã là một lập trình viên.

Có một cộng đồng các nhà phát triển năng động xung quanh cả Vim và Neovim, và các dự án dường như không cạnh tranh tích cực. Trong khi Neovim có xu hướng có các tính năng mới đầu tiên và một số tính năng thử nghiệm hơn có thể không bao giờ xuất hiện trên trình soạn thảo dày dạn kinh nghiệm hơn, thì cả hai đều có vẻ khá lành mạnh.

2. Sự khác biệt chính giữa Vim và Neovim

Để bắt đầu, có nhiều điểm tương đồng giữa Vim và Neovim hơn là khác biệt. Mặc dù đã là người dùng Vim/Neovim trong nhiều năm, tôi vẫn giữ một bản sao của Practical Vim của Drew Neil trên bàn làm việc của mình. Mặc dù không có chữ "neo" trong tiêu đề, tôi vẫn chưa đọc được mẹo nào trong cuốn sách đó mà không áp dụng được trong Neovim.

Đối với các nhà phát triển, Neovim hướng đến mục tiêu đơn giản hơn trong việc bảo trì và mở rộng, với giao diện người dùng tiên tiến hơn. Điều này có nghĩa là đối với người dùng, chúng ta có được các tính năng mới lạ mắt nhanh hơn, trong khi cơ sở mã được đơn giản hóa sẽ giúp bảo trì dễ dàng hơn để đảm bảo chúng ta có thể tiếp tục sử dụng các tính năng đó.

Trên thực tế, sự khác biệt chính giữa Neovim và Vim là, như đã ám chỉ ở trên, hệ sinh thái plugin. Lua không chỉ là ngôn ngữ được biết đến rộng rãi hơn Vimscript, mà nói chung, kiến trúc plugin mà Neovim sử dụng cung cấp cho plugin nhiều quyền kiểm soát hơn đối với môi trường. Điều này có nghĩa là plugin có thể biến đổi Neovim theo những cách hoàn toàn mới.


Ngoài tùy chọn sử dụng Lua cho tệp cấu hình của bạn, Neovim cũng sử dụng một cấu trúc thư mục khác. Trong khi Vim có xu hướng tìm kiếm.vimrctrong thư mục home của bạn, Neovim tuân theo thông số kỹ thuật XDG Base Directory. Nếu bạn đang sử dụng máy Mac, điều này sẽ không có ý nghĩa gì với bạn, nhưng đối với người dùng Linux, điều này có nghĩa là cấu hình Neovim của bạn nằm trong $HOME/.config/nvim cùng một cách như nhiều chương trình khác.

3. Kiến thức cơ bản về Neovim

Neovim không phổ biến hoặc thông dụng như Vim (ít nhất là chưa), nhưng nó vẫn có sẵn trên hầu hết các bản phân phối Linux chính.

3.1. Cài đặt Neovim

Trên hệ thống Ubuntu hoặc Debian, hãy chạy:

Mã nguồn [Chọn]
sudo apt install neovim
Trên Fedora, hãy chạy lệnh sau:

Mã nguồn [Chọn]
sudo dnf install neovim
Đối với hệ thống dựa trên Arch, hãy chạy:

Mã nguồn [Chọn]
sudo pacman -S neovim
Để có hiệu suất tối ưu, sau khi cài đặt Neovim, hãy chạy ứng dụng bằng nvim lệnh, sau đó nhấn Escape để đảm bảo bạn đang ở chế độ Bình thường, rồi nhập lệnh sau:

Mã nguồn [Chọn]
:checkhealth
Nếu có bất kỳ chương trình bổ sung nào mà Neovim dựa vào mà không được cài đặt, lệnh này sẽ cho bạn biết. Trong trường hợp bạn gặp sự cố trong tương lai, điều này rất hữu ích để biết.

3.2. Học những điều cơ bản

Vim, và theo nghĩa mở rộng là Neovim, có tiếng là một phần mềm khó học. Tôi cho rằng điều này phần lớn là không đúng. Đúng, việc làm quen với chỉnh sửa modal mất một thời gian, nhưng ngoài ra, việc học các phím tắt không phức tạp hơn việc học các phím tắt trong bất kỳ ứng dụng nào khác.

May mắn thay, cả Vim và Neovim đều có trình hướng dẫn tích hợp để chỉ cho bạn cách sử dụng. Có quá nhiều thứ để tìm hiểu về Neovim để đề cập trong phạm vi bài viết này, nhưng hướng dẫn tích hợp là nơi tuyệt vời để bắt đầu.

Để bắt đầu học, hãy chạy nvim, giả sử bạn chưa chạy, sau đó chạy lệnh sau:

Mã nguồn [Chọn]
:Tutor
Và này, ít nhất thì bạn cũng sẽ học được cách thoát khỏi chương trình.


4. Cấu hình Neovim

Không giống như Vim chuẩn, sử dụng một.vimrctệp đơn khối duy nhất, Neovim có thể sử dụng phương pháp tiếp cận theo mô-đun hơn, giả sử bạn đang sử dụng tệp Lua. Điều này không ảnh hưởng nhiều đến hiệu suất trình chỉnh sửa thực tế, nhưng nó giúp sắp xếp cấu hình của bạn nếu bạn đang sử dụng nhiều tùy chỉnh và plugin.

Tất nhiên, nếu bạn mới sử dụng Neovim, có lẽ bạn sẽ chưa có nhiều tùy chỉnh để thêm vào. Tuy nhiên, nếu bạn quan tâm đến việc viết mã Python, bạn có thể muốn cài đặt một số plugin giúp việc viết mã Python trở nên đơn giản hơn. Kiến trúc mô-đun của Neovim giúp bạn dễ dàng cô lập những plugin này thành các tệp cấu hình riêng trong một thư mục con, vì vậy nếu bạn quyết định không thích một tệp nào đó, bạn có thể dễ dàng xóa tệp đó khỏi tệp cấu hình của mình.

Một lần nữa, việc tạo ra cấu hình Neovim hoàn hảo nằm ngoài phạm vi của bài viết này. Nếu bạn giống như hầu hết mọi người, bạn có thể sẽ tạo ra một cấu hình bằng cách lấy các bit và phần từ nhiều dotfile khác nhau mà bạn tìm thấy trên GitHub. May mắn thay, có một tùy chọn dễ dàng hơn.

5. Tùy chỉnh Neovim thật dễ dàng

Nó bắt đầu với việc mọi người chia sẻ cấu hình của riêng họ, nhưng qua nhiều năm, nhiều trình biên tập đã thấy "bản phân phối" xuất hiện, không hoàn toàn khác với bản phân phối Linux. Những bản phân phối này cũng tồn tại đối với Neovim, về cơ bản là các tệp cấu hình được cấu hình sẵn mà bạn có thể thả vào thư mục gốc của mình, thử nghiệm và sau đó điều chỉnh theo ý thích.

Hai bản phân phối Neovim phổ biến là LazyVim và NvChad. Nếu bạn xem ảnh chụp màn hình của bất kỳ bản phân phối nào trong số này, bạn có thể ngạc nhiên khi thấy mình vẫn đang xem Neovim. Với các biểu tượng, thanh bên và tab trực quan ở đầu màn hình, bạn gần như mong đợi mình đang xem ảnh chụp màn hình VS Code.

LazyVim hướng đến mục tiêu trở thành phiên bản hoàn thiện nhất ngay khi xuất xưởng, đến mức nếu bạn đã quen với Neovim, bạn có thể cảm thấy nó quá khác biệt. Tuy nhiên, bản phân phối này rất phù hợp với người mới bắt đầu, với một gói tích hợp cung cấp cho bạn những gợi ý hữu ích về việc nhấn một phím nhất định sẽ làm gì khi bạn bắt đầu nhập tổ hợp phím.

Mặt khác, NvChad có ít tính năng hơn một chút ngay từ đầu, nhưng vẫn cung cấp trải nghiệm được sửa đổi rất nhiều so với Neovim nguyên bản. Nếu bạn muốn thứ gì đó giống như trình chỉnh sửa hiện đại nhưng muốn khám phá sâu hơn một chút về Neovim ngay lần thử đầu tiên, hãy thử cái này.


Ngay cả khi bạn chọn bắt đầu với trình soạn thảo barebones, Neovim và Vim vẫn rất đáng để học, ngay cả khi bạn chuyển sang các trình soạn thảo khác trong thời gian ngắn. Bạn không bao giờ biết khi nào việc biết một hoặc hai điều về trình soạn thảo văn bản có từ những năm 1970 có thể hữu ích.