Neovim là gì?
Neovim là một trình soạn thảo văn bản dựa trên Vim, có khả năng mở rộng siêu việt, nhằm hiện đại hóa và cải thiện trải nghiệm Vim cổ điển. Được ra mắt vào năm 2014 như một nhánh của Vim, Neovim đã phát triển thành một dự án độc lập với bản sắc và lộ trình phát triển riêng. Trong khi vẫn duy trì tính tương thích hoàn toàn với mô hình chỉnh sửa của Vim, Neovim giới thiệu một mã nguồn dễ bảo trì hơn, các cài đặt mặc định tốt hơn và một kiến trúc plugin mạnh mẽ tận dụng việc thực thi bất đồng bộ.
Về cốt lõi, Neovim giữ nguyên triết lý chỉnh sửa theo kiểu chế độ (modal editing) đã khiến Vim trở nên nổi tiếng trong cộng đồng lập trình viên và người dùng chuyên nghiệp. Cách tiếp cận này phân tách việc chỉnh sửa văn bản thành các chế độ khác nhau - chủ yếu là chế độ bình thường để điều hướng và thực hiện lệnh, chế độ chèn để nhập văn bản, và chế độ hình ảnh để chọn và thao tác các khối văn bản. Sự phân tách này cho phép thao tác văn bản một cách cực kỳ hiệu quả khi đã thành thạo, cho phép người dùng chỉnh sửa văn bản với tốc độ suy nghĩ chứ không phải tốc độ gõ phím.
Neovim phân biệt với các trình soạn thảo văn bản truyền thống thông qua khả năng mở rộng của nó. Nó cung cấp hỗ trợ hạng nhất cho các máy chủ ngôn ngữ thông qua Giao thức Máy chủ Ngôn ngữ (LSP), giả lập terminal tích hợp, và một giao diện lập trình Lua cho phép các nhà phát triển tạo ra các plugin mạnh mẽ với độ overhead tối thiểu. Những tính năng này định vị Neovim không chỉ là một trình soạn thảo văn bản mà còn là một môi trường phát triển có thể tùy chỉnh để phù hợp với quy trình làm việc của từng cá nhân.
Trước khi đi vào các lệnh Neovim của chúng ta, tôi muốn giới thiệu với bạn Apidog – một nền tảng phát triển API toàn diện, đang nhanh chóng trở thành sự thay thế ưu thích của nhiều lập trình viên cho Postman.

Nếu bạn thường xuyên làm việc với API trong khi lập trình trên Neovim, Apidog cung cấp một trải nghiệm liền mạch cho việc thiết kế API, gỡ lỗi, và tài liệu.

Apidog kết hợp tài liệu API, kiểm tra tự động, và máy chủ mô phỏng trong một công cụ tích hợp, làm cho nó hoàn hảo cho cả lập trình viên cá nhân và các đội nhóm. Giao diện trực quan và các tính năng mạnh mẽ giúp tối ưu hóa quy trình làm việc với API trong khi vẫn duy trì tính tương thích với các bộ sưu tập Postman hiện có của bạn. Dành chút thời gian để kiểm tra Apidog cùng với cài đặt Neovim của bạn – sự kết hợp của những công cụ mạnh mẽ này có thể cách mạng hóa quy trình phát triển của bạn.
Giờ đây, hãy cùng khám phá những lệnh Neovim thiết yếu!
Tại sao bạn nên sử dụng Neovim
Hiệu suất và Tối ưu hóa
Kiến trúc của Neovim được thiết kế cho tốc độ. Bằng cách tận dụng I/O bất đồng bộ, nó vẫn phản hồi ngay cả khi chạy các tác vụ nặng như lập chỉ mục mã hoặc các thao tác git. Điều này đồng nghĩa với việc không còn tình trạng treo hay lag khi làm việc trên các tệp lớn hoặc các dự án phức tạp. Cách tiếp cận chỉnh sửa theo chế độ cũng giảm thiểu sự di chuyển tay, giảm thiểu nguy cơ chấn thương do căng thẳng lặp lại mà các lập trình viên thường gặp phải khi dành hàng giờ để lập trình.
Tùy chỉnh và Mở rộng
Mặc dù nhiều trình chỉnh sửa hiện đại cung cấp tùy chọn tùy chỉnh, cách tiếp cận của Neovim lại đặc biệt mạnh mẽ. Mọi khía cạnh của trình chỉnh sửa có thể được cấu hình theo sở thích của bạn, từ các phím tắt đến giao diện. Hệ sinh thái plugin mạnh mẽ cho phép bạn mở rộng chức năng theo gần như bất kỳ hướng nào - biến Neovim thành một IDE cho ngôn ngữ bạn chọn, một môi trường viết cho tài liệu, hoặc bất cứ điều gì ở giữa.
Kỹ năng Bảo đảm Tương lai
Học Neovim phát triển kỹ năng chỉnh sửa vượt qua các công cụ hoặc môi trường cụ thể. Chỉnh sửa theo kiểu Vim sẵn có dưới dạng plugin hoặc chế độ trong hầu hết các trình chỉnh sửa và IDE phổ biến, bao gồm VS Code, IntelliJ IDEA, và ngay cả các trình duyệt. Việc thành thạo những lệnh này tạo ra những kỹ năng có thể truyền tải, nâng cao năng suất của bạn trên nhiều nền tảng khác nhau.
Tối ưu hóa Tài nguyên
Khả năng chiếm dụng tài nguyên tối thiểu của Neovim làm cho nó trở thành một lựa chọn xuất sắc cho công việc từ xa hoặc trên các thiết bị có công suất thấp hơn. Nó khởi chạy ngay lập tức và tiêu thụ ít bộ nhớ hơn đáng kể so với các trình chỉnh sửa đồ họa, để lại nhiều tài nguyên hơn cho các tác vụ phát triển thực tế của bạn.
Cộng đồng và Hệ sinh thái
Neovim đã phát triển một cộng đồng tích cực mà liên tục đóng góp cho sự cải tiến của nó. Hệ sinh thái plugin phong phú và đa dạng, với các công cụ có sẵn cho gần như mọi nhu cầu phát triển. Từ tìm kiếm mờ và điều hướng tệp đến tích hợp git và tô sáng cú pháp, cộng đồng đã tạo ra các giải pháp sánh ngang hoặc vượt xa những gì có trong các IDE thương mại.
Tinh thần Mã Nguồn Mở
Bằng cách chọn Neovim, bạn đang chấp nhận một công cụ mã nguồn mở hoàn toàn với quy trình phát triển minh bạch. Trình chỉnh sửa của bạn không phải chịu sự thay đổi của một tập đoàn hoặc sự thay đổi đột ngột trong các mô hình giấy phép hoặc giá cả.
Cách Cài đặt Neovim trên Windows, Mac, Linux
Cài đặt Windows
Sử dụng Trình Quản Lý Gói Windows (winget)
winget install Neovim.Neovim
Sử dụng Chocolatey
choco install neovim
Sử dụng Scoop
scoop install neovim
Cài đặt Thủ công
- Truy cập trang ra mắt Neovim trên GitHub
- Tải xuống tệp ZIP Windows ổn định mới nhất
- Giải nén nội dung vào một vị trí tùy chọn (ví dụ,
C:\Program Files\Neovim
) - Thêm thư mục
bin
vào biến môi trường PATH của bạn - Kiểm tra cài đặt bằng cách mở dấu nhắc lệnh và gõ
nvim --version
Cài đặt macOS
Sử dụng Homebrew
brew install neovim
Sử dụng MacPorts
sudo port install neovim
Cài đặt Thủ công
- Tải xuống tệp lưu trữ macOS mới nhất từ trang phát hành Neovim trên GitHub
- Giải nén ứng dụng vào thư mục Ứng dụng của bạn
- Tùy chọn, thêm một bí danh vào tệp cấu hình shell của bạn:
alias nvim='/Applications/Neovim.app/Contents/MacOS/nvim'
Cài đặt Linux
Ubuntu/Debian
sudo apt update
sudo apt install neovim
Fedora
sudo dnf install -y neovim python3-neovim
Arch Linux
sudo pacman -S neovim
Xây dựng từ Mã nguồn
Đối với các tính năng mới nhất hoặc trên các bản phân phối không có gói cập nhật:
git clone https://github.com/neovim/neovim
cd neovim
make CMAKE_BUILD_TYPE=RelWithDebInfo
sudo make install
Xác minh Cài đặt của Bạn
Sau khi cài đặt, mở terminal hoặc dấu nhắc lệnh và gõ:
nvim --version
Bạn sẽ thấy đầu ra hiển thị phiên bản và thông tin xây dựng của Neovim. Để khởi động Neovim, hãy gõ:
nvim
Cài đặt Ban đầu
Neovim lưu trữ cấu hình của mình tại các vị trí sau:
- Windows:
%LOCALAPPDATA%\nvim\
- macOS/Linux:
~/.config/nvim/
Tạo một tệp init.vim
trong thư mục này để cấu hình Vimscript hoặc một init.lua
cho cấu hình Lua. Nhiều người dùng bắt đầu với cấu hình tối thiểu và dần dần xây dựng khi họ học:
Ví dụ cơ bản về init.vim:
" Cài đặt cơ bản
set number " Hiển thị số dòng
set relativenumber " Hiển thị số dòng tương đối
set expandtab " Sử dụng khoảng trắng thay vì tab
set tabstop=4 " Đặt chiều rộng tab là 4 khoảng trắng
set shiftwidth=4 " Đặt chiều rộng dịch là 4 khoảng trắng
set autoindent " Bật tự động thụt lề
set smartindent " Bật thụt lề thông minh
set termguicolors " Bật hỗ trợ màu thật
Top 100 Lệnh Neovim cho Người Mới Bắt Đầu
Neovim đã khẳng định vị thế của mình như một trình soạn thảo văn bản mạnh mẽ, có thể mở rộng cho cả lập trình viên và người dùng chuyên nghiệp. Dựa trên nền tảng của Vim, Neovim cung cấp hiệu suất được cải thiện, kiến trúc plugin tốt hơn và một cộng đồng sôi động liên tục nâng cao khả năng của nó. Dù bạn là một chuyên gia Vim hay một người mới vào thế giới chỉnh sửa theo chế độ, có một tài liệu tham khảo lệnh toàn diện trong tầm tay có thể cải thiện đáng kể hiệu suất và quy trình làm việc của bạn.
Tài liệu tham khảo này tổng hợp 100 lệnh Neovim thiết yếu mà mỗi người dùng nên biết, được tổ chức theo danh mục để tham khảo nhanh. Từ việc điều hướng cơ bản đến thao tác văn bản nâng cao, những lệnh này đại diện cho bộ công cụ làm cho Neovim trở thành một môi trường chỉnh sửa mạnh mẽ. Thành thạo ngay cả một tập hợp con của những lệnh này sẽ nâng cao đáng kể năng suất của bạn và giúp bạn khai thác tiềm năng đầy đủ của Neovim.
Điều Hướng Cơ Bản
h
,j
,k
,l
- Di chuyển con trỏ sang trái, xuống, lên, phải (các phím di chuyển chính trong Neovim)w
- Nhảy đến đầu từ tiếp theo (dấu câu được coi là từ)W
- Nhảy đến đầu từ tiếp theo (các từ tách biệt bằng khoảng trắng)b
- Nhảy đến đầu từ trước đóB
- Nhảy đến đầu từ trước đóe
- Nhảy đến cuối từE
- Nhảy đến cuối từ0
- Nhảy đến đầu dòng (cột đầu tiên)^
- Nhảy đến ký tự không trắng đầu tiên của dòng$
- Nhảy đến cuối dònggg
- Đi đến dòng đầu tiên của tài liệuG
- Đi đến dòng cuối cùng của tài liệu{number}G
- Đi đến số dòng cụ thể{
- Nhảy đến đoạn trước/cụm mã trước đó}
- Nhảy đến đoạn tiếp theo/cụm mã tiếp theoCtrl-u
- Di chuyển lên nửa màn hìnhCtrl-d
- Di chuyển xuống nửa màn hìnhCtrl-b
- Di chuyển lên một màn hình đầy đủCtrl-f
- Di chuyển xuống một màn hình đầy đủzz
- Center con trỏ trên màn hình (dòng hiện tại trở thành dòng giữa)zt
- Đặt con trỏ ở đầu màn hìnhzb
- Đặt con trỏ ở dưới cùng màn hình
Các Lệnh Chỉnh Sửa
i
- Vào chế độ chèn trước con trỏ (để chèn văn bản)I
- Vào chế độ chèn tại đầu dònga
- Vào chế độ chèn sau con trỏ (chèn thêm)A
- Vào chế độ chèn tại cuối dòngo
- Chèn dòng mới bên dưới dòng hiện tại và vào chế độ chènO
- Chèn dòng mới bên trên dòng hiện tại và vào chế độ chènr
- Thay thế một ký tự đơn dưới con trỏ (không vào chế độ chèn)R
- Vào chế độ thay thế (ghi đè văn bản hiện có)x
- Xóa ký tự dưới con trỏX
- Xóa ký tự trước con trỏdd
- Xóa toàn bộ dòng (và lưu vào thanh ghi){number}dd
- Xóa nhiều dòngD
- Xóa từ con trỏ đến cuối dòngyy
hoặcY
- Sao chép toàn bộ dòng{number}yy
- Sao chép nhiều dòngy$
- Sao chép từ con trỏ đến cuối dòngp
- Dán sau con trỏP
- Dán trước con trỏu
- Hoàn tác thay đổi cuối cùngCtrl-r
- Làm lại (hoàn tác sự hoàn tác)~
- Đổi chữ cái của ký tự dưới con trỏ>>
- Thụt đầu dòng<<
- Bỏ thụt đầu dòng.
- Lặp lại lệnh cuối cùng (mạnh mẽ cho các chỉnh sửa lặp lại)cc
hoặcC
- Thay đổi toàn bộ dòng (xóa dòng và vào chế độ chèn)cw
- Thay đổi từ (xóa từ và vào chế độ chèn)c$
hoặcC
- Thay đổi đến cuối dòngJ
- Kết hợp dòng hiện tại với dòng tiếp theo
Tìm Kiếm và Thay Thế
/pattern
- Tìm kiếm phía trước cho mẫu?pattern
- Tìm kiếm phía sau cho mẫun
- Lặp lại tìm kiếm theo hướng giống nhauN
- Lặp lại tìm kiếm theo hướng ngược lại*
- Tìm kiếm phía trước cho từ dưới con trỏ#
- Tìm kiếm phía sau cho từ dưới con trỏ:%s/old/new/g
- Thay thế tất cả các lần xuất hiện của 'old' bằng 'new' trong toàn bộ tệp:%s/old/new/gc
- Thay thế tất cả các lần xuất hiện với xác nhận:s/old/new/g
- Thay thế tất cả các lần xuất hiện trên dòng hiện tại:noh
- Xóa đánh dấu tìm kiếmgd
- Đi đến định nghĩa cục bộ của từ dưới con trỏgD
- Đi đến định nghĩa toàn cầu của từ dưới con trỏ
Chế Độ Hình Ảnh
v
- Vào chế độ hình ảnh theo ký tự (chọn ký tự)V
- Vào chế độ hình ảnh theo dòng (chọn toàn bộ dòng)Ctrl-v
- Vào chế độ hình ảnh theo khối (chọn các khối hình chữ nhật)gv
- Chọn lại lựa chọn hình ảnh trước đóo
- Trong chế độ hình ảnh: Di chuyển đến đầu bên kia của lựa chọnO
- Trong chế độ hình ảnh khối: Di chuyển đến góc khác của khốiaw
- Chọn một từ (trong chế độ hình ảnh)ab
- Chọn một khối với () (trong chế độ hình ảnh)aB
- Chọn một khối với {} (trong chế độ hình ảnh)at
- Chọn một khối với thẻ HTML/XML (trong chế độ hình ảnh)
Các Thao Tác Tệp
:e filename
- Chỉnh sửa một tệp (tạo nếu chưa tồn tại):w
- Ghi (lưu) tệp:w filename
- Ghi vào tên tệp được chỉ định (lưu dưới dạng):q
- Thoát (thất bại nếu có thay đổi chưa lưu):q!
- Thoát mà không lưu (bỏ qua các thay đổi):wq
hoặc:x
- Ghi và thoát:saveas filename
- Lưu tệp dưới tên tệp:r filename
- Chèn nội dung của tệp bên dưới con trỏ:r !command
- Chèn đầu ra của lệnh shell bên dưới con trỏ
Làm Việc với Cửa Sổ và Tab
:split
hoặc:sp
- Chia cửa sổ theo chiều ngang:vsplit
hoặc:vs
- Chia cửa sổ theo chiều dọcCtrl-w h/j/k/l
- Điều hướng giữa các cửa sổ (trái/xuống/lên/phải)Ctrl-w +/-
- Tăng/giảm chiều cao cửa sổCtrl-w </>
- Tăng/giảm chiều rộng cửa sổCtrl-w =
- Làm cho tất cả các cửa sổ có kích thước bằng nhauCtrl-w o
- Làm cho cửa sổ hiện tại là cửa sổ duy nhất:tabnew
- Tạo tab mớigt
- Đi đến tab tiếp theogT
- Đi đến tab trước đó:tabclose
- Đóng tab hiện tại:tabonly
- Đóng tất cả các tab khác
Quản Lý Bộ Đệm
:ls
- Liệt kê tất cả các bộ đệm:b number
- Chuyển đến bộ đệm bằng số:bn
- Bộ đệm tiếp theo:bp
- Bộ đệm trước đó:bd
- Xóa bộ đệm (đóng tệp):bufdo command
- Thực hiện lệnh trên tất cả các bộ đệm:e #
- Chỉnh sửa tệp thay thế (thường là tệp đã chỉnh sửa trước đó)
Đánh Dấu và Nhảy
m{a-z}
- Đặt đánh dấu tại vị trí hiện tại (chữ thường cho bộ đệm cục bộ)m{A-Z}
- Đặt đánh dấu tại vị trí hiện tại (chữ hoa cho toàn cầu)'{mark}
- Nhảy đến dòng của đánh dấu`{mark}
- Nhảy đến vị trí của đánh dấuCtrl-o
- Nhảy đến vị trí cũ hơn trong danh sách nhảyCtrl-i
- Nhảy đến vị trí mới hơn trong danh sách nhảy'.
- Nhảy đến vị trí của thay đổi cuối cùng`.
- Nhảy đến vị trí chính xác của thay đổi cuối cùng
Đối Tượng Văn Bản và Chuyển Động
ci(
- Thay đổi trong dấu ngoặc đơndi"
- Xóa trong dấu nháy đôiyi]
- Sao chép trong dấu ngoặc vuôngva{
- Chọn hình ảnh xung quanh dấu ngoặc nhọn (bao gồm các dấu)dap
- Xóa xung quanh đoạn văncit
- Thay đổi trong thẻ HTML/XMLdiw
- Xóa trong từdaw
- Xóa xung quanh từ (bao gồm khoảng trắng)dab
- Xóa xung quanh khối (dấu ngoặc đơn)daB
- Xóa xung quanh khối (dấu ngoặc nhọn)
Các Lệnh Gấp
zf
- Tạo khối gấp (trong chế độ hình ảnh)zo
- Mở khối gấp dưới con trỏzc
- Đóng khối gấp dưới con trỏza
- Chuyển đổi khối gấp dưới con trỏzR
- Mở tất cả các khối gấpzM
- Đóng tất cả các khối gấpzj
- Di chuyển đến khối gấp tiếp theozk
- Di chuyển đến khối gấp trước đó
Các Tính Năng Đặc Biệt của Neovim
:terminal
hoặc:term
- Mở terminal tích hợpCtrl-\ Ctrl-n
- Thoát chế độ terminal về chế độ bình thường:checkhealth
- Chạy công cụ chẩn đoán của Neovim:lua require('telescope.builtin').find_files()
- Sử dụng plugin Telescope để tìm tệp:TSInstall language
- Cài đặt trình phân tích treesitter cho một ngôn ngữ:LspInfo
- Hiển thị trạng thái Giao thức Máy chủ Ngôn ngữ:TSBufToggle highlight
- Chuyển đổi tô sáng treesitter:highlight
- Hiển thị các nhóm tô sáng hiện tại:Tutor
- Bắt đầu hướng dẫn tích hợp của Neovim:help nvim-features
- Xem các tính năng cụ thể của Neovim
Các Tính Năng Nâng Cao
q{a-z}
- Ghi lại macro vào thanh ghi@{a-z}
- Chạy macro từ thanh ghi@@
- Lặp lại macro đã chạy cuối cùngg&
- Lặp lại thay thế cuối cùng trên tất cả các dòng:norm cmd
- Thực hiện lệnh chế độ bình thường trên các dòng đã chọngf
- Đi đến tệp dưới con trỏCtrl-a
- Tăng số dưới con trỏCtrl-x
- Giảm số dưới con trỏ:sort
- Sắp xếp các dòng đã chọn!motion command
- Lọc văn bản qua lệnh bên ngoài
Kết Luận
Điểm mạnh của Neovim nằm ở bộ lệnh phong phú, và việc thành thạo những lệnh này sẽ nâng cao hiệu quả chỉnh sửa của bạn. Hãy nhớ rằng việc thành thạo đến từ thực hành – bắt đầu bằng cách kết hợp một vài lệnh mới vào quy trình làm việc của bạn mỗi ngày, và sớm thì chúng sẽ trở thành phản xạ tự nhiên.
Triết lý chỉnh sửa theo kiểu chế độ của Neovim cho phép thao tác văn bản cực kỳ chính xác và hiệu quả khi bạn xây dựng trí nhớ cơ bắp cho những lệnh này. Hãy cân nhắc tạo ra các phím tắt tùy chỉnh cho các thao tác thường xuyên để tăng cường năng suất của bạn hơn nữa.
Khi mức độ thành thạo của bạn tăng lên, bạn có thể muốn khám phá hệ sinh thái plugin để mở rộng chức năng của Neovim. Các plugin phổ biến như Telescope cho việc tìm kiếm mờ, cấu hình LSP cho trí tuệ mã, và Treesitter cho tô sáng cú pháp được cải thiện có thể biến Neovim thành một môi trường phát triển tích hợp mạnh mẽ phù hợp với nhu cầu riêng của bạn.
Đối với những người làm việc với API trong khi sử dụng Neovim, đừng quên thử Apidog như một sự thay thế toàn diện cho Postman. Giao diện tinh gọn và các tính năng mạnh mẽ của nó bổ sung cho cách tiếp cận tối ưu hóa hiệu quả của Neovim để tạo ra một môi trường phát triển tối ưu.
Dù bạn đang viết mã, tài liệu dự án, hay chỉnh sửa các tệp cấu hình, những lệnh Neovim này cung cấp nền tảng cho một trải nghiệm chỉnh sửa văn bản phát triển cùng với nhu cầu của bạn và thích ứng với quy trình làm việc cá nhân của bạn. Với thời gian và thực hành, bạn sẽ khám phá ra rằng đường cong học tập ban đầu của Neovim mang lại lợi ích rất lớn cho năng suất lâu dài và niềm vui trong việc chỉnh sửa.
Chúc bạn chỉnh sửa vui vẻ!