Tổng quan về trình soạn thảo vi
Trong môi trường quản trị hệ thống Linux, vi (viết tắt của Visual Interface) là trình soạn thảo văn bản kinh điển và phổ biến nhất. Việc thành thạo vi là kỹ năng bắt buộc đối với các kỹ sư phần mềm khi cần thao tác trực tiếp trên máy chủ thông qua giao thức SSH, nơi mà các trình soạn thảo có giao diện đồ họa (GUI) không khả dụng.
Hiện nay, hầu hết các bản phân phối Linux sử dụng vim (Vi IMproved) - một phiên bản nâng cấp của vi với nhiều tính năng mạnh mẽ như kiểm tra cú pháp, tự động hoàn thành mã và hỗ trợ plugin phong phú.
Để kiểm tra liên kết giữa vi và vim trên hệ thống, bạn có thể sử dụng các lệnh sau:
# Kiểm tra vị trí thực thi của vi
which vi
ls -l /usr/bin/vi
# Truy vết liên kết thực tế của vim
readlink -f /usr/bin/vi
Cách khởi tạo và mở tệp tin
Cú pháp cơ bản để mở hoặc tạo một tệp mới trong terminal:
vi ten_tep_tin.txt
Ngoài ra, bạn có thể mở tệp và di chuyển con trỏ ngay lập tức đến một dòng cụ thể (rất hữu ích khi cần sửa lỗi code tại một dòng đã biết trước):
# Mở tệp và nhảy đến dòng số 15
vi +15 main.py
# Mở tệp và nhảy đến dòng cuối cùng
vi + main.py
Ba chế độ hoạt động chính
vi hoạt động dựa trên cơ chế chuyển đổi giữa các chế độ:
- Chế độ lệnh (Command Mode): Đây là chế độ mặc định khi vừa mở tệp. Tại đây, bạn có thể di chuyển con trỏ, sao chép, dán hoặc xóa văn bản.
- Chế độ chèn (Insert Mode): Dùng để nhập liệu văn bản. Nhấn phím
iđể bắt đầu soạn thảo. - Chế độ dòng lệnh (Last-line Mode): Dùng để thực hiện các lệnh hệ thống như lưu tệp, thoát chương trình hoặc tìm kiếm thay thế. Để vào chế độ này, nhấn dấu
:từ chế độ lệnh.
Bảng các lệnh thoát cơ bản:
| Lệnh | Mô tả |
|---|---|
:w |
Lưu thay đổi |
:q |
Thoát (nếu chưa lưu sẽ bị từ chối) |
:q! |
Thoát cưỡng bức, không lưu thay đổi |
:wq hoặc :x |
Lưu và thoát |
Các lệnh di chuyển cơ bản
Trong vi, bạn nên hạn chế sử dụng phím mũi tên để giữ tay luôn ở khu vực trung tâm bàn phím:
h: Sang tráij: Xuống dướik: Lên trênl: Sang phải
Di chuyển nhanh trong văn bản:
| Phím | Chức năng |
|---|---|
w / b |
Tiến / lùi một từ |
0 / $ |
Về đầu dòng / cuối dòng |
gg / G |
Về đầu tệp / cuối tệp |
{ / } |
Chuyển đến đoạn văn trước / sau |
% |
Nhảy giữa các cặp dấu ngoặc tương ứng ( ), [ ], { } |
Thao tác chỉnh sửa và xử lý văn bản
1. Chọn văn bản (Visual Mode)
Nhấn v để bắt đầu chọn ký tự, V để chọn cả dòng, hoặc Ctrl + v để chọn theo khối dọc (block).
2. Hoàn tác và làm lại
u: Hoàn tác (Undo) hành động trước đó.Ctrl + r: Làm lại (Redo) hành động vừa Undo.
3. Xóa, Sao chép và Dán
Lưu ý: Trong vi, lệnh xóa (delete) cũng đóng vai trò như lệnh cắt (cut).
| Lệnh | Chức năng |
|---|---|
x |
Xóa ký tự tại con trỏ |
dw |
Xóa từ hiện tại |
dd |
Xóa (cắt) cả dòng hiện tại |
yy |
Sao chép (yank) cả dòng |
p |
Dán nội dung từ bộ đệm vào sau con trỏ |
Tìm kiếm và thay thế
Để tìm kiếm một chuỗi ký tự, tại chế độ lệnh gõ /chuoi_tim_kiem. Nhấn n để đến kết quả tiếp theo, N để quay lại kết quả trước.
Cú pháp thay thế văn bản hàng loạt:
# Thay thế tất cả "old" thành "new" trong toàn bộ tệp
:%s/old/new/g
# Thay thế có xác nhận từ người dùng
:%s/old/new/gc
Làm việc với nhiều cửa sổ (Split Screen)
vi cho phép bạn chia màn hình để xem nhiều tệp cùng lúc:
:sp [ten_tep]: Chia màn hình theo chiều ngang.:vsp [ten_tep]: Chia màn hình theo chiều dọc.Ctrl + w + w: Chuyển đổi qua lại giữa các cửa sổ.Ctrl + w + c: Đóng cửa sổ hiện tại.
Cấu hình cá nhân hóa với .vimrc
Bạn có thể tùy chỉnh môi trường làm việc của mình bằng cách tạo tệp .vimrc tại thư mục gốc (home directory). Các thiết lập phổ biến bao gồm:
" Hiển thị số dòng
set number
" Tự động thụt đầu dòng
set autoindent
" Sử dụng khoảng trắng thay cho phím Tab
set expandtab
set tabstop=4
" Bật tính năng highlight cú pháp
syntax on