Skip to content

Sử dụng trình soạn thảo Vi#

  • Trình soạn thảo vi được cài đặt gần như trên tất cả hệ điều hành Unix. Linux cũng thường cài đặt vi (vi improved).
  • Vi là một trình soạn thảo không trực quan, tuy nhiên nếu biết sử dụng, nó sẽ là một công cụ soạn thảo mạnh mẽ.

1. Mở và thoát vi#

  • Để sử dụng vi trên một file, sử dụng: vi filename. Nếu file đã tồn tại, trang đầu của file sẽ được hiển thị lên màn hình. Nếu không, vi sẽ tạo một file trống.

  • Trình soạn thảo vi mở trong chế độ command mode. Ở command mode, bạn có thể gõ các lệnh, một số lệnh đưa bạn đến insert mode. Ở insert mode, bạn có thể gõ văn bản. Dùng nút ESC để về command mode từ insert mode.

  • Thường thì bản mới hai bản chỉnh sửa của một file sẽ được lưu khi thoát. Nhưng vẫn có thể thoát vi mà không lưu chỉnh sửa.

Command Ý nghĩa
:x Thoát vi và lưu những chỉnh sửa vào file
:wq Thoát vi và lưu những chỉnh sửa vào file
:q Thoát vi
:q! Thoát vi mà không lưu những chỉnh sửa

2. Di chuyển trong file#

Câu lệnh Ý nghĩa
k hoặc mũi tên lên Di chuyển lên trên 1 dòng
j hoặc mũi tên xuống Di chuyển xuống dưới 1 dòng
h hoặc mũi tên sang trái Di chuyển sang trái 1 ký tự
l hoặc mũi tên sang phải Di chuyển sang phải 1 ký tự
e Di chuyển đến cuối từ
b Di chuyển đến đầu từ (lùi lại)
w Di chuyển đến đầu từ (tiến lên)
O Di chuyển đến đầu dòng
G Di chuyển đến cuối file
gg Di chuyển đến đầu file
L Di chuyển đến cuối màn hình
:59 hoặc 59G Di chuyển đến dòng 59
20 Di chuyển đến cột 20
% Di chuyển đến các ngoặc trong dòng
Nhảy đến nơi bắt đầu function
Nhảy đến nơi bắt đầu block

3. Cut, copy và paste#

Câu lệnh Ý nghĩa
y Copy phần text đã chọn vào clipboard
p Paste content
dd Cut dòng hiện tại
yw Copy từ hiện tại
yy Copy dòng hiện tại
y$ Copy đến cuối dòng
D Copy tới cuối file

4. Tìm kiếm trong vi#

Câu lệnh Ý nghĩa
/word Tìm kiếm "word" từ trên xuống dưới
?word Tìm kiếm "word" từ dưới lên trên
* Tìm kiếm từ con trỏ
/\cstring Tìm "String" cả chữ hoa lẫn chữ thường
/jo[ha]n Tìm "john" và "joan"
/< the Tìm từ bắt đầu bằng "the" ví dụ: theatre or then
/the> Tìm từ kết thúc bằng "the" ví dụ: breathe

5. Thay thế#

Câu lệnh Ý nghĩa
:%s/old/new/g Thay thế toàn bộ "old" thành "new" trong file
:%s/onward/forward/gi Thay thế toàn bộ "onward" thành "forward" trong file, không phân biệt chữ hoa
%s/old/new/gc Thay thế toàn bộ "old" thành "new" trong file kèm theo xác nhận
:2,35s/old/new/g Thay thế toàn bộ "old" thành "new" từ dòng 2 đến 35
:5,$s/old/new/g Thay thế toàn bộ "old" thành "new" từ dòng 5 đến EOF
:%s/^/hello/g Thêm vào đầu mỗi dòng bằng "hello"
:%s/$/Harry/g Thêm vào cuối mỗi dòng bằng "Harry"
:g/string/d Xoá toàn bộ các dòng có chứa từ "string"
Ctrl+a Thêm 1 cho số tại nơi con trỏ đang chỉ
Ctrl+x Giảm 1 cho số tại nơi con trỏ đang chỉ

6. Case#

Câu lệnh Ý nghĩa
Vu Chuyển chữ thành chữ thường dòng hiện tại
VU Chuyển chữ thành chữ hoa dòng hiện tại
g~~ Chuyển dòng hiện tại thành chữ hoa và ngược lại
vEU Chuyển thành chữ hoa
gggUG Biến tất cả chữ trong file thành chữ hoa
:set ignorecase Không phân biệt chữ hoa trong tìm kiếm
:set smartcase Không phân biệt chữ hoa trong tìm kiếm, ngoại trừ khi tìm có chữ hoa

7. Đọc/ghi file#

Câu lệnh Ý nghĩa
:1,10 w outfile Lưu dòng 1 đến dòng 10 vào outfile
:1,10 w >> outfile Nối dòng 1 đến dòng 10 vào outfile
:r infile Chèn nội dung từ infile vào
:23r infile Chèn nội dung từ infile vào sau dòng 23

8. File explorer#

Câu lệnh Ý nghĩa
:e. Mở File explorer
:Sex Chia đôi màn hình mở File explorer
:Sex! Chia đôi màn hình theo chiều dọc và mở File Explorer
:ls Liệt kê Buffer
:cd .. Đến thư mục cha
:args Liệt kê các file
:args *.php Mở file theo định dạng mong muốn
gf Mở file tại nơi con trỏ chỉ

9. Alignment#

Câu lệnh Ý nghĩa
:%!fmt Căn chỉnh tất cả các dòng
!fmt Căn chỉnh tất cả các dòng tại vị trí hiện tại
5!!fmt Căn chỉnh 5 dòng tiếp theo

10. Tab/Windows#

Câu lệnh Ý nghĩa
:tabnew Tạo tab mới
gt Chuyển sang tab tiếp theo
:tabfirst Chuyển tới tab đầu tiên
:tablast Chuyển tới tab cuối cùng
:tabm n (position) Chuyển vị trí tab

11. Windows Splitting#

Câu lệnh Ý nghĩa
:e filename Sửa file tại thời điểm hiện tại
:split filename Chia đôi màn hình và mở filename
:sp filename Chia đôi màn hình theo chiều ngang
:vs filename Chia đôi màn hình theo chiều dọc
Ctrl + w + hướng Điều hướng giữa các màn hình đã chia
Ctrl + w_ Tối đa chiều dọc cho màn hình hiện tại
Ctrl + w Tối đa chiều ngang cho màn hình hiện tại
Ctrl-w= Điều chỉnh kích thước bằng nhau cho tất cả các màn hình
10 Ctrl-w+ Thêm 10 dòng cho màn hình hiện tại
:hide Đóng màn hình hiện tại
:nly Đóng tất cả màn hình trừ màn hình hiện tại

12. Auto-completion#

Câu lệnh Ý nghĩa
Ctrl+n Ctrl+p (in insert mode) Hoàn thành từ
Ctrl+x Ctrl+l Hoàn thành dòng
:set dictionary=dict Định nghĩa dict là một từ điển
Ctrl+x Ctrl+k Hoàn thành với từ điển

13. Marks#

Câu lệnh Ý nghĩa
m {a-z} Đánh dấu vị trí hiện tại với chữ cái được set {a - z}
{a-z} Di chuyển đến vị trí đã đánh dấu
" Di chuyển đến vị trí trước đó

14. Text Indent#

Câu lệnh Ý nghĩa
:set autoindent Bật chế độ tự động thụt đầu dòng
:set smartindent Bật chế độ thụt đầu dòng thông minh
:set shiftwidth=4 Định nghĩa thụt đầu dòng bằng 4 ký tự
ctrl-t, ctrl-d Thụt/giảm thụt trong insert mode
Thụt đầu dòng
Giảm thụt đầu dòng
Thụt đầu dòng mã trong dấu ngoặc
1GVG= Thụt đầu toàn bộ file

15. Syntax highlighting#

Câu lệnh Ý nghĩa
:syntax on Bật chế độ làm nổi bật cú pháp
:syntax off Tắt chế độ làm nổi bật cú pháp
:set syntax=perl Bắt buộc làm nổi bật cú pháp

Nguồn: Viblo