Lệnh vi trên Linux được sử dụng để mở trình soạn thảo văn bản vi editor trực tiếp từ dòng lệnh, đây là trình chỉnh sửa văn bản cổ điển, rất phổ biến trên hệ thống Unix/Linux nhờ tính nhẹ, tốc độ nhanh và khả năng thao tác mà không cần giao diện đồ họa. Trong bài viết này, mình sẽ cùng bạn tìm hiểu rõ về lệnh vi, đồng thời hướng dẫn bạn từ các bước cơ bản đến nâng cao để thoát khỏi lệnh vi trong Linux nhanh chóng, chính xác.
Những điểm chính
- Định nghĩa lệnh vi: Hiểu rõ lệnh vi là gì, lịch sử ra đời và sự phổ biến của phiên bản cải tiến vim.
- Các chế độ hoạt động: Nắm vững các chế độ hoạt động (Normal, Insert, Command) – chìa khóa để thao tác hiệu quả trong vi.
- Cách thoát khỏi lệnh vi: Học được các lệnh thiết yếu để lưu, thoát (
:w,:q,:wq,:q!) và di chuyển con trỏ một cách nhanh chóng. - Ví dụ thao tác: Thực hành qua một ví dụ cụ thể từ việc tạo file, nhập liệu, đến lưu và thoát, giúp củng cố kỹ năng thực tế.
- Giải đáp thắc mắc (FAQ): Có được câu trả lời cho các tình huống nâng cao như xử lý khi vi bị treo, tùy chỉnh cấu hình và cách copy/paste hiệu quả.
Lệnh vi là gì?
Lệnh vi trong Linux là một trình soạn thảo văn bản tiêu chuẩn, được sử dụng rộng rãi trong môi trường Linux và Unix, hỗ trợ người dùng khởi tạo, hiệu chỉnh và điều hướng nội dung văn bản một cách tối ưu. Với khả năng tùy biến linh hoạt cùng hệ thống tính năng mạnh mẽ, vi đã trở thành công cụ thiết yếu đối với các quản trị viên hệ thống, lập trình viên và giới kỹ thuật trên toàn thế giới.

Các chế độ hoạt động của vi
Đặc điểm khiến vi khác biệt hoàn toàn so với các trình soạn thảo khác chính là việc công cụ này hoạt động theo các chế độ (modes) gồm:
- Normal mode: Thao tác cơ bản (di chuyển, xóa, copy).
- Insert mode: Dùng để nhập nội dung (nhấn i để vào).
- Command mode: Gõ lệnh như lưu (:w), thoát (:q), tìm kiếm,…

Bảng chuyển đổi các chế độ trong vi:
| Phím lệnh | Chế độ chuyển đến | Tác dụng |
| i | Insert Mode | Bắt đầu nhập văn bản ngay tại vị trí con trỏ hiện tại. |
| Esc | Normal / Command Mode | Thoát khỏi chế độ Insert hoặc chế độ lệnh hiện tại để về trạng thái điều khiển mặc định. |
| : | Last-line Mode | Kích hoạt dòng lệnh ở cuối màn hình để nhập các lệnh hệ thống (lưu, thoát…). |
Cách thoát khỏi lệnh vi trong Linux nhanh chóng
Đây là các thao tác cơ bản trong trình soạn thảo văn bản vi trên Linux, giúp bạn dễ dàng lưu, thoát file và di chuyển con trỏ trong nội dung:
Cách lưu và thoát trong
Đây là các lệnh quan trọng nhất để bạn quản lý nội dung file sau khi chỉnh sửa:
| Lệnh | Tác dụng |
| :w | Lưu file nhưng không thoát. |
| :q | Thoát (chỉ dùng được khi bạn chưa thay đổi gì trong file). |
| :wq hoặc 😡 | Lưu và thoát (Cách dùng phổ biến nhất). |
| :q! | Thoát mà không lưu (Hủy bỏ mọi thay đổi vừa thực hiện). |
Di chuyển con trỏ
Sử dụng các phím này giúp bạn điều hướng trong văn bản nhanh hơn so với việc chỉ dùng phím mũi tên thông thường.
| Phím | Tác dụng |
| h | Di chuyển sang Trái. |
| l | Di chuyển sang Phải. |
| j | Di chuyển Xuống dưới. |
| k | Di chuyển Lên trên. |
| 0 (số không) | Nhảy về Đầu dòng. |
| $ | Nhảy về Cuối dòng. |
| gg | Nhảy về Đầu file. |
| G | Nhảy về Cuối file. |
Ví dụ thao tác với vi editor
1. Tạo hoặc mở file
Bạn tiến hành gõ lệnh sau trong terminal:
vi test.txtKhi đó, file mới tên test.txt sẽ được mở trong vi.

2. Chuyển sang chế độ soạn thảo (Insert mode)
Bạn nhấn phím i để bắt đầu nhập nội dung

3. Lưu và thoát file
Sau khi nhập xong, bạn nhấn phím Esc để thoát khỏi chế độ nhập. Sau đó, bạn gõ lệnh sau rồi nhấn Enter để lưu và thoát:
:wq
4. Kiểm tra lại nội dung vừa nhập
Bạn mở lại file để xem hoặc chỉnh sửa nội dung bằng lệnh:
vi test.txt
5. Thoát mà không lưu thay đổi
Nếu bạn đã chỉnh sửa file nhưng muốn thoát mà không cần lưu, nhấn Esc, sau đó gõ lệnh dưới đây và nhấn Enter:
:q!
Kết quả hiển thị như sau:

Câu hỏi thường gặp
Làm thế nào để thoát khỏi chế độ bị treo khi sử dụng vi mà không phản hồi phím lệnh?
Nếu vi bị treo hoặc không phản hồi, bạn hãy nhấn tổ hợp phím Ctrl + C để thoát thao tác hiện tại hoặc Ctrl + Z để tạm dừng phiên làm việc và quay về dòng lệnh. Trong trường hợp không thể thoát, bạn có thể sử dụng lệnh kill từ một terminal khác để kết thúc tiến trình vi.
Có thể thiết lập cấu hình mặc định cá nhân hóa cho vi không?
Bạn hoàn toàn có thể cá nhân hóa thiết lập vi bằng cách chỉnh sửa file cấu hình ~/.exrc hoặc ~/.vimrc (nếu dùng vim). Ví dụ, bạn có thể thêm set number để hiện số dòng, set tabstop=4 để đặt độ rộng tab và nhiều tùy chọn khác nhằm tối ưu thao tác soạn thảo.
Làm thế nào để sử dụng vi với chế độ đánh dấu trực quan để copy và paste đoạn văn bản?
Trong vim, bạn nhấn v ở Normal Mode để vào Visual mode, dùng phím di chuyển để chọn đoạn, sau đó nhấn y để copy hoặc d để cut và chuyển tới vị trí cần dán rồi nhấn p. Vi cổ điển có thao tác copy/paste hạn chế hơn, chủ yếu dùng lệnh yank và put.
Lệnh vi là lựa chọn tối ưu cho những ai làm việc trên hệ thống Unix/Linux, đặc biệt khi yêu cầu thao tác nhanh, gọn, không phụ thuộc vào giao diện đồ họa. Việc nắm rõ các thao tác thoát lệnh, chuyển chế độ, lưu hoặc hủy thay đổi không chỉ ích lợi cho quản trị viên hệ thống mà còn giúp các lập trình viên làm việc hiệu quả hơn. Hy vọng qua bài viết này, bạn đã có được nền tảng kiến thức vững chắc cùng kỹ năng thực hành hiệu quả với vi, sẵn sàng ứng dụng vào mọi tình huống thực tế trong công việc hàng ngày.




