Khám phá 11 câu lệnh thường dùng nhất khi sử dụng vi/vim, công cụ soạn thảo văn bản mạnh mẽ trên hệ thống Linux giúp bạn làm chủ vi/vim một cách dễ dàng.
Vi và Vim là hai trình soạn thảo văn bản mạnh mẽ và phổ biến trên hệ thống Unix/Linux, được sử dụng rộng rãi bởi các lập trình viên, quản trị hệ thống và những người yêu thích công nghệ. Dù bạn mới bắt đầu hay đã có kinh nghiệm, việc nắm vững các câu lệnh cơ bản của vi/vim sẽ giúp tăng năng suất và hiệu quả làm việc của bạn. Trong bài viết này, chúng ta sẽ khám phá 11 câu lệnh thường dùng nhất khi sử dụng vi/vim, giúp bạn điều hướng, chỉnh sửa và quản lý tệp tin một cách nhanh chóng và dễ dàng.
![Câu lệnh thường dùng nhất khi sử dụng vi/vim Câu lệnh thường dùng nhất khi sử dụng vi/vim](/_next/image?url=https%3A%2F%2Fsuncloud.vn%2Fcdn%2Fadmin%2F20243005%2Fcau-lenh-vi-vim.png%3Fidentify%3DSqbX71qr5ypjwYAl5wlm&w=1920&q=90)
1. Giới thiệu về trình soạn thảo “vi”/”vim”
Vi (viết tắt của "visual editor") là một trình soạn thảo văn bản được phát triển vào những năm 1970 bởi Bill Joy, một nhà khoa học máy tính người Mỹ. Vim (viết tắt của "Vi IMproved") là một phiên bản cải tiến và mở rộng của vi, được phát triển bởi Bram Moolenaar vào những năm 1990.
2. Đặc điểm chính của vi/vim
Vi/Vim hoạt động trong hai chế độ chính:
Chế độ Lệnh (Command mode): Trong chế độ này, người dùng có thể thực hiện các thao tác như di chuyển, sửa đổi, lưu và thoát khỏi tệp. Các thao tác được thực hiện bằng cách nhập các phím lệnh cụ thể. Trong chế độ này, bạn có thể thực hiện các thao tác điều khiển như:
- Di chuyển con trỏ
- Sao chép, dán, xóa văn bản
- Tìm kiếm và thay thế
- Lưu tệp và thoát khỏi vi
>>> Xem thêm: Hướng dẫn cấu hình cmd log trên Linux chi tiết nhất
Chế độ Soạn thảo (Insert mode): Trong chế độ này, người dùng có thể nhập văn bản như trong các trình soạn thảo thông thường. Bạn có thể thực hiện các thao tác điều khiển như:
- Để chuyển sang chế độ Soạn thảo, bạn nhấn phím "i", "a", "o" hoặc các phím tương tự.
- Trong chế độ này, bạn có thể trực tiếp nhập và chỉnh sửa văn bản, giống như các trình soạn thảo thông thường.
- Để quay lại chế độ Lệnh, bạn nhấn phím "Esc".
3. 11 Câu lệnh thường dùng khi sử dụng vi/vim
- i - Chuyển sang chế độ Chèn, cho phép bạn chèn ký tự tại vị trí con trỏ.
- a - Chuyển sang chế độ Chèn, cho phép bạn chèn ký tự sau vị trí con trỏ.
- x - Xóa ký tự tại vị trí con trỏ.
- dd - Xóa dòng hiện tại.
- yy - Sao chép dòng hiện tại.
- p - Dán nội dung đã sao chép vào vị trí con trỏ.
- u - Hoàn tác thao tác cuối cùng.
- d + G - Xóa toàn bộ tệp.
- / - Tìm kiếm văn bản về phía trước.
- ? - Tìm kiếm văn bản về phía sau
- `SHIFT + d `sẽ thực hiện hành động xóa từ vị trí con trỏ hiện tại đến cuối dòng.
4. Thực hiện thao tác với vi/vim bằng câu lệnh qua ví dụ thực tiễn
Để vào trình soạn thảo vi thì ta thực hiện câu lệnh
vi + đường dẫn file mình cần chỉnh sửa |
Ví dụ: Mình sẽ sửa file active.sh với nội dung sau, bạn có thể lấy 1 file nào bất kì.
[root@Khoi-C7 ~]# vi active.sh |
![sửa file active.sh câu lệnh vi/vim sửa file active.sh](/_next/image?url=https%3A%2F%2Fsuncloud.vn%2Fcdn%2Fadmin%2F20243005%2F1.png%3Fidentify%3DeJpc2nes4rZSD69on0S3&w=1920&q=90)
4.1 `i`- Chuyển sang chế độ Chèn, cho phép bạn chèn ký tự tại vị trí con trỏ.
Sau khi vào file bạn nhấn i trên bàn phím thì có thể chèn ký tự vào vị trí của con trỏ
![chèn ký tự tại vị trí con trỏ câu lệnh vi/vim chèn ký tự tại vị trí con trỏ](/_next/image?url=https%3A%2F%2Fsuncloud.vn%2Fcdn%2Fadmin%2F20243005%2F2.png%3Fidentify%3DHOP1K3iRAaMPFRT1rXkD&w=1920&q=90)
4.2 `a` - Chuyển sang chế độ Chèn, cho phép bạn chèn ký tự sau vị trí con trỏ.
Tương tự giống như nhấn i , thì a cũng chèn ký tự nhưng khi nhấn a thì vị trí chèn sẽ là sau vị trí của con trỏ
Ví dụ : Khi con trỏ đang ở vị trí `a` sau khi nhấn phím a thì con trỏ sẽ nhảy sang vị trí của `d` đang đứng và chèn ký tự tiếp theo sao ký tự `d`
![chèn ký tự sau vị trí con trỏ câu lệnh vi/vim chèn ký tự sau vị trí con trỏ](/_next/image?url=https%3A%2F%2Fsuncloud.vn%2Fcdn%2Fadmin%2F20243005%2F3.png%3Fidentify%3DhfwzIuODXKlvCEvj7MyH&w=1920&q=90)
4.3 `x` - Xóa ký tự tại vị trí con trỏ
Sau khi vào file bạn nhấn x trên bàn phím thì có thể xóa ký tự tại vị trí của con trỏ
Ví dụ : Con trỏ đang ở vị trí của `o` sau khi nhấn x thì ký tự `o` biến mất
Trước khi chưa nhấn x
![Trước khi chưa nhấn x câu lệnh vi/vim Trước khi chưa nhấn x](/_next/image?url=https%3A%2F%2Fsuncloud.vn%2Fcdn%2Fadmin%2F20243005%2F4.png%3Fidentify%3DidlnXmliBLWZp7nBptpm&w=1920&q=90)
![Sau khi nhấn x Sau khi nhấn x](/_next/image?url=https%3A%2F%2Fsuncloud.vn%2Fcdn%2Fadmin%2F20243005%2F5.png%3Fidentify%3DgObtpXbzW8dqc83XcExB&w=1920&q=90)
4.4 `d + Entern `- Xóa 2 dòng kế tiếp nhau
- Đặt con trỏ ở dòng bạn muốn xóa.
- Nhấn d trên bàn phím. + Enter
Ví dụ : Mình thực hiện xóa dòng 5 + 6
Trước khi chưa xóa:
![Xóa 2 dòng kế tiếp nhau Xóa 2 dòng kế tiếp nhau](/_next/image?url=https%3A%2F%2Fsuncloud.vn%2Fcdn%2Fadmin%2F20243005%2F6.png%3Fidentify%3Dz5uUmDIJjk2rRCeOfzpB&w=1920&q=90)
Sau khi xóa dòng số 5 + 6 đã bị xóa và đã được thay thế
![Xóa 2 dòng 5, 6 kế tiếp nhau Xóa 2 dòng 5, 6 kế tiếp nhau](/_next/image?url=https%3A%2F%2Fsuncloud.vn%2Fcdn%2Fadmin%2F20243005%2F7.png%3Fidentify%3DA9Z3MJeX6AgJxOaSHCbp&w=1920&q=90)
4.5 `d +G `nếu muốn xóa toàn bộ tệp.
4.6 `SHIFT + d `sẽ thực hiện hành động xóa từ vị trí con trỏ hiện tại đến cuối dòng
- Đặt con trỏ ở vị trí bạn muốn bắt đầu xóa.
- Nhấn Shift + d (hoặc D) trên bàn phím.
Ví dụ : Con trỏ đang ở vị trí ký tự `d` của dòng số 5 sau khi ấn Shift + d Thì những ký tự từ vị trí `d` đến hết dòng sẽ bị xóa
Trước khi chưa thực hiện
![Trước khi xóa từ vị trí con trỏ hiện tại đến cuối dòng Trước khi xóa từ vị trí con trỏ hiện tại đến cuối dòng](/_next/image?url=https%3A%2F%2Fsuncloud.vn%2Fcdn%2Fadmin%2F20243005%2F8.png%3Fidentify%3DNKoKuKURgsijAf4CY3YO&w=1920&q=90)
![Sau khi xóa từ vị trí con trỏ hiện tại đến cuối dòng Sau khi xóa từ vị trí con trỏ hiện tại đến cuối dòng](/_next/image?url=https%3A%2F%2Fsuncloud.vn%2Fcdn%2Fadmin%2F20243005%2F9.png%3Fidentify%3DxNIP7NhD5Ww2YGEe3iIH&w=1920&q=90)
4.7 yy + p : Sao chép dòng và dán vào vị trí của con trỏ
Cách sử dụng:
- Đặt con trỏ ở dòng bạn muốn sao chép.
- Nhấn yy để sao chép dòng hiện tại.
- Di chuyển con trỏ đến vị trí bạn muốn dán dòng sao chép.
- Nhấn p để dán dòng sao chép vào phía dưới vị trí con trỏ.
Ví dụ : Sao chép dòng số 7 và đưa con trỏ vào vị trí của dòng số 10 rồi nhấn p
Trước khi thực hiện
![Sao chép dòng và dán vào vị trí của con trỏ Sao chép dòng và dán vào vị trí của con trỏ](/_next/image?url=https%3A%2F%2Fsuncloud.vn%2Fcdn%2Fadmin%2F20243005%2F10.png%3Fidentify%3D1ofaAVkQr3e2Et0mf06G&w=1920&q=90)
![Sau khi thực hiện Sau khi thực hiện](/_next/image?url=https%3A%2F%2Fsuncloud.vn%2Fcdn%2Fadmin%2F20243005%2F11.png%3Fidentify%3DFgYjhubIHOu4NdSjWFdL&w=1920&q=90)
4.8 u - Hoàn tác thao tác cuối cùng
4.9 + 4.10: / hoặc ? - Tìm kiếm văn bản về phía trước hoặc sau vị trí con trỏ.
- Tìm kiếm không phân biệt chữ hoa chữ thường.
- Bạn có thể sử dụng các ký tự đại diện như * và ? để tìm kiếm theo mẫu.
- Sau khi tìm thấy kết quả đầu tiên, bạn có thể nhấn n để di chuyển đến kết quả tiếp theo, hoặc Shift + n để di chuyển đến kết quả trước đó.
- Nếu muốn tìm kiếm từ vị trí con trỏ hiện tại về phía cuối tệp, bạn có thể sử dụng ? thay vì /.
Ví dụ bạn tìm kiếm `directadmin` trong file kết hợp phím Shift + n hoặc phím n để di chuyển tìm kiếm kết quả.
![Tìm kiếm văn bản về phía trước hoặc sau vị trí con trỏ Tìm kiếm văn bản về phía trước hoặc sau vị trí con trỏ](/_next/image?url=https%3A%2F%2Fsuncloud.vn%2Fcdn%2Fadmin%2F20243005%2F12.png%3Fidentify%3DkOEO6hIwGpPDbXCvvLVN&w=1920&q=90)
5. Một số lệnh cơ bản thường sử dụng trong “vi”
Các lệnh lưu và thoát, thay thế, hiển thị số dòng trong VI/VIM:
5.1 :q: Thoát khỏi Vim
5.2 :q!: Bắt buộc thoát không cần lưu
5.3 :w!: Bắt buộc ghi file (ghi đè)
5.4 :wq: Lưu xong thoát
5.5 :set nu : Hiển thị số dòng của văn bản
5.6 :%s/old/new/g : để thay thế tất cả các từ "old" bằng "new" trong toàn bộ tập tin.
% đại diện cho toàn bộ tập tin.
sử dụng các tùy chọn như c (xác nhận trước khi thay thế) hoặc i (phân biệt hoa thường) trong lệnh thay thế.
VD : Thay thế `firewall-cmd` bằng tuonglua trong file
Trước khi chưa thay
![Thay thế `firewall-cmd` bằng tuonglua trong file Thay thế `firewall-cmd` bằng tuonglua trong file](/_next/image?url=https%3A%2F%2Fsuncloud.vn%2Fcdn%2Fadmin%2F20243005%2F13.png%3Fidentify%3DFsEB69SXXJXYcV3DxtB3&w=1920&q=90)
![Sau khi thay thế `firewall-cmd` bằng tuonglua trong file Sau khi thay thế `firewall-cmd` bằng tuonglua trong file](/_next/image?url=https%3A%2F%2Fsuncloud.vn%2Fcdn%2Fadmin%2F20243005%2F14.png%3Fidentify%3DOxOqcKDlof42xCGSHMmA&w=1920&q=90)
Tổng kết
Vậy là SunCloud đã cùng các bạn tìm hiểu về trình soạn thảo văn bản vi/vim, một công cụ mạnh mẽ và linh hoạt cho việc chỉnh sửa tệp tin trong môi trường Linux. Chúng tôi đã hướng dẫn cách sử dụng các lệnh cơ bản, từ việc chuyển đổi giữa các chế độ, đến cách tìm kiếm và thay thế văn bản. Không chỉ dừng lại ở những lệnh cơ bản, chúng tôi cũng giới thiệu một số lệnh nâng cao và các mẹo hữu ích để tăng hiệu suất làm việc với vi/vim.
Nếu có bất kỳ thắc mắc nào hoặc cần giải đáp thêm về vi/vim, hãy liên hệ với chúng tôi để được tư vấn sớm nhất nhé. Chúc các bạn thành công trong việc sử dụng vi/vim để tối ưu hóa công việc của mình!
>>> Có thể bạn quan tâm: LVM là gì? Hướng dẫn cấu hình LVM trong Linux và ví dụ cụ thể