Việc sử dụng Vim đối với người mới sử dụng sẽ khá phức tạp, và làm ảnh hưởng đến tốc độ sử dụng thay vì sử dụng các Text editor khác, tuy nhiên nếu nắm rõ các command dưới đây của Vim thì việc sử dụng của bạn sẽ được tăng lên nhanh chóng cho đến khi bạn thuần thục. Việc sử dụng Vim thuần thục sẽ khiến bạn hạn chế đến mức thấp nhất việc sử dụng chuột và di chuyển tay quanh bàn phím và chuột dẫn đến thời gian lập trình và thao tác sẽ nhanh hơn rất nhiều. Hy vọng bài viết cơ bản dưới đây sẽ giúp ích cho các bạn.
Cơ bản
Câu lệnh |
Ý nghĩa |
:e filename |
Mở filename với editor |
:w |
Lưu file |
:q |
Thoát Vim |
:q! |
Thoát mà không lưu |
:x |
Viết vào file (nếu thay đổi đã được tạo) và thoát |
:sav filename |
Lưu file dưới tên (filename) |
. |
Lặp lại thao tác gần nhất ở Normal Mode |
5. |
Lặp lại 5 lần thao tác gần nhất ở Normal Mode |
Moving 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 screen |
: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 |
Cut, copy & 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 word |
yy |
Copy dòng hiện tại |
y$ |
Copy đến cuối dòng |
D |
Copy tới cuối file |
Search
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 |
Replace
Câu lệnh |
Ý nghĩa |
:%s/old/new/g |
Replace toàn bộ old thành new ở trong file |
:%s/onward/forward/gi |
Replace toàn bộ onward thành forward ở trong file, case unsensitive |
%s/old/new/gc |
Replace toàn bộ old thành new ở trong file kèm theo confirm |
:2,35s/old/new/g |
Replace toàn bộ old thành new từ dòng 2 đến 35 |
:5,$s/old/new/g |
Replace toàn bộ old thành new từ dòng 5 đến EOF |
:%s/^/hello/g |
Thêm vào đầu của mỗi dòng bằng hello |
:%s/$/Harry/g |
Thêm vào cuối của mỗi dòng bằng Harry |
:g/string/d |
Xoá toàn bộ các dòng có chứa từ string |
/Bill/Steve/g |
Thay thế Bill thành Steve tại dòng hiện tại |
Ctrl+a |
+1 cho số tại nơi con trỏ đang chỉ |
Ctrl+x |
-1 cho số tại nơi con trỏ đang chỉ |
Case
Câu lệnh |
Ý nghĩa |
Vu |
Lowercase dòng hiện tại |
VU |
Uppercase dòng hiện tại |
g~~ |
Chuyền dòng hiện tại thành Uppercase và ngược lại |
vEU |
Chuyển thành Uppercase |
| ggguG | Biến tất cả chữ trong file thành lowercase |
| gggUG| Biến tất cả chữ trong file thành uppercase |
| :set ignorecase | Ignore case trong search |
| :set smartcase | Ignore case trong search ngoại trừ trong search có chữ in hoa |
Đọc/Viết file
Câu lệnh |
Ý nghĩa |
:1,10 w outfile |
Lưu dòng 1 đến dòng 10 trong outfile |
:1,10 w >> outfile |
Nối dòng 1 đến dòng 10 trong outfile |
:r infile |
Insert content vào infile |
:23r infile |
Insert content vào infile sau dòng 23 |
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 |
List Buffer |
:cd .. |
Đến thư mục cha |
:args |
List files |
:args *.php |
Mở file theo định dạng mong muốn |
gf |
Mở File tại nơi con trỏ chỉ |
Alignment
Câu lệnh |
Ý nghĩa |
:%!fmt |
Align tất cả các dòng |
!}fmt |
Allign tất cả các dòng tại vị trí hiện tại |
5!!fmt |
Allign 5 dòng tiếp theo |
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 |
Windows Spliting
Câu lệnh |
Ý nghĩa |
:e filename |
Sửa filenane tại thời màn hình 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_ |
Max chiều dọc cho màn hình hiện tại |
Ctrl +w |
Max 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 |
Auto-completion
Câu lệnh |
Ý nghĩa |
Ctrl+n Ctrl+p (in insert mode) |
Complete word |
Ctrl+x Ctrl+l |
Complete line |
:set dictionary=dict |
Define dict as a dictionnary |
Ctrl+x Ctrl+k |
Complete with dictionnary |
Marks
Câu lệnh |
Ý nghĩa |
m {a-z} |
Marks vị trí hiện tại với chữ cái đc set {a -z} |
'{a-z} |
Move đến vị trí |
" |
Move đến vị trí trước đó |
Text Indent
Câu lệnh |
Ý nghĩa |
:set autoindent |
Turn on auto-indent |
:set smartindent |
Turn on intelligent auto-indent |
:set shiftwidth=4 |
Định nghĩa indent bằng 4 space |
ctrl-t, ctrl-d |
Indent/un-indent trong insert mode |
>> |
Indent |
<< |
Un-Indent |
=% |
Indent code trong dấu ngoặc |
1GVG= |
Indent toàn bộ file |
Syntax highlighting
Câu lệnh |
Ý nghĩa |
:syntax on |
Turn on syntax highlighting |
:syntax off |
Turn off syntax highlighting |
:set syntax=perl |
Force syntax highlighting |