+1

Vim Commands Cheat Sheet

Tổng hợp các lệnh thường dùng trong Vim

Thoát

:q[uit]			Thoát Vim. Vô hiệu khi thay đổi chưa được lưu.
:q[uit]!		Thoát mà không lưu thay đổi.
:cq[uit]		Thoát luôn và không lưu gì cả.
:wq				Lưu file rồi thoát.
:wq!			Lưu lại file hiện tại rồi thoát.
:wq {file}		Lưu {file}. Thoát nếu không có thêm thay đổi.
:wq! {file}		Lưu {file} và thoát.
:[range]wq[!]	[file] Như trên, nhưng chỉ lưu dòng trên [range].
ZZ				Lưu file hiện tại nếu có đổi, rồi thoát.
ZQ				Thoát file hiện tại mà không lưu (giống ":q!").

Sửa file

:e[dit]			Sửa file hiện tại. Điều này rất hữu ích để re-edit các file hiện tại, khi nó đã được thay đổi bên ngoài Vim.
:e[dit]!		Sửa file hiện tại. Bỏ qua các thay đổi trong bộ đệm hiện tại
:e[dit] {file}	Sửa {file}.
:e[dit]! {file}	Sửa {file}. Bỏ qua các thay đổi trong bộ đệm hiện tại.
gf				Sửa file có tên dưới hoặc sau con trỏ.

Chèn Text

a	Chèn phía sau con trỏ.
A	Chèn cuối dòng.
i	Chèn trước con trỏ.
I	Chèn đầu dòng.
gI	Chèn vào đầu cột.
o	Chèn dòng mới vào bên dưới dòng hiện tại.
O	Chèn dòng mới vào bên trên dòng hiện tại.

Chèn file

:r[ead] [name]	Chèn file [name] dưới con trỏ.
:r[ead] !{cmd}	Thực thi {cmd} and chèn nó dưới con trỏ.

Xóa

<Del> or x			   Xóa ký tự ở dưới và sau con trỏ
X						Xóa ký tự trước con trỏ
d{motion}				Xóa theo nút di chuyển
dd						Xóa dòng hiện tại
D						Xóa các ký tự bên dưới con trỏ cho đến cuối dòng
{Visual}x or {Visual}d	Xóa đoạn văn bản đã được đánh dấu.
{Visual}CTRL-H			Ở chế độ Select, xóa đoạn văn bản đã được đánh dấu.
{Visual}X or {Visual}D	Xóa dòng được đánh dấu
:[range]d[elete]		Xóa dòng [range] (mặc định là dòng hiện tại)
:[range]d[elete]{count}	Xóa {count} dòng, bắt đầu từ [range]

Thay đổi hoặc chèn

r{char}		Thay thế ký tự dưới con trỏ bằng {char}.
R			Trong chế độ Insert, thay thế ký tự chứ không phải chèn.
~			Chuyển chữ thường thành chữ hoa và ngược lại, con trỏ tự di chuyển về bên phải.
~{motion}	Chuyển kiểu chữ hoa/thường {motion}.
{Visual}~	Chuyển kiểu chữ hoa/thường với đoạn ký tự được đánh dấu

Thay thế

:[range]s[ubstitute]/{pattern}/{string}/[c][e][g][p][r][i][I] [count]		Với mỗi dòng [range] thay thế {pattern} bằng {string}.
:[range]s[ubstitute] [c][e][g][r][i][I] [count] :[range]&[c][e][g][r][i][I] [count]	Repeat last :thay thế pattern bằng string, nhưng không phải flags tương tự. Có thể thêm flags

Sao chép và di chuyển

:reg[isters]		Hiển thị nội dung của tất cả các thanh ghi số và tên đăng ký.
:reg[isters] {arg}	Hiển thị nội dung của tất cả các thanh ghi số và tên đăng ký được đề cập trong {arg}.
:di[splay] [arg]	Giống :registers.
["x]p				Đặt đoạn văn bản vào sau con trỏ.
["x]P				Đặt đoạn văn bản vào trước con trỏ.
["x]gp				Giống "p", Nhưng để con trỏ ở sau đoạn mới.
["x]gP				Giống "P", Nhưng để con trỏ ở sau đoạn mới.
:[line]pu[t] [x]	đặt đoạn văn bản vào sau dòng [line] (mặc định là dòng hiện tại).
:[line]pu[t]! [x]	đặt đoạn văn bản vào trước dòng [line] (mặc định là dòng hiện tại).

Undo/Redo/Repeat

u			Undo tất cả thay đổi.
:u[ndo]		Undo 1 lần.
CTRL-R		Redo [count] tất cả thay đổi được undo.
:red[o]		Redo 1 lần undo trước đó.
U			Undo tất cả thay đổi trong dòng hiện tại
.			lặp lại thay đổi cuối cùng, với số lần [count].

Lệnh di chuyển

Lệnh di chuyển cơ bản:

    k
  h   l
    j

h							Di chuyển sang trái.
l							Di chuyển sang phải.
k hoặc CTRL-P				Di chuyển lên trên
j hoặc CTRL-J hoặc CTRL-N	Di chuyển xuống dưới.
0							Về đầu dòng.
<Home>					   Về đầu dòng
^							Về ký tự đầu tiên khác khoảng trắng của dòng
$ or <End>				   Về cuối dòng
+ or CTRL-M or <CR>		   Di chuyển xuống ký tự đầu tiên khác khoảng trắng của dòng dưới.
_ <underscore>			   Di chuyển lên ký tự đầu tiên khác khoảng trắng của dòng trên.
<C-End> or G				   Di chuyển đến dòng [count], mặc định là dòng cuối, đến ký tự đầu tiên khác khoảng trắng.
<C-Home> or gg			   Di chuyển đến dòng [count], mặc định là dòng đầu tiên, đến ký tự đầu tiên khác khoảng trắng.
<S-Right> or w			   Di chuyển đến từ kế tiếp
<C-Right> or W			   Di chuyển đến từ kế tiếp, bỏ qua dấu và ký tự đặc biệt.
e							Di chuyển đến cuối từ kế tiếp
E							Di chuyển đến cuối từ kế tiếp, bỏ qua dấu và ký tự đặc biệt.
<S-Left> or b			   Di chuyển đến từ ở phía trước
<C-Left> or B			   Di chuyển đến từ ở phía trước, bỏ qua dấu và ký tự đặc biệt.
ge							Di chuyển đến cuối từ ở phía trước
gE							Di chuyển đến cuối từ ở phía trước, bỏ qua dấu và ký tự đặc biệt

Lệnh di chuyển màn hình

z.	Di chuyển về dòng giữa màn hình
zt	Cuộn màn hình để con trỏ lên trên
zb	Cuộn màn hình để con trỏ xuống dưới

Tìm kiếm

?{pattern}		Tìm kiếm {pattern}
/{pattern}[/]	Tìm kiếm {pattern}
n				Lặp lại “/” hoặc “?”
N				Lặp lại “/” hoặc “?” theo hướng ngược lại

Chọn đoạn văn bản (Visual Mode)

Để chọn đoạn văn bản, vào chế độ Visual, sử dụng phím di chuyển để đánh dấu đoạn văn bản. Sau đó sử dụng lệnh trên văn bản Các lệnh có thể sử dụng:

~	đổi chữ hoa chữ thường
d	xóa
c	thay đổi
y	yank
>	di chuyển cả đoạn sang phải
<	di chuyển cả đoạn sang trái

v		Chế độ Visual với mỗi ký tự.
V		Chế độ Visual linewise.
<Esc>	Thoát chế độ Visual mà không lưu bất kỳ thay đổi nào.

Suspend

CTRL-Z						Thoát Vim ở mọi chế độ.
:sus[pend][!] or :st[op][!]	Thoát Vim. Nếu không có ! hoặc autowrite được thiết lập thì sẽ lưu thay đổi. Nếu không thì sẽ không lưu thay đổi nào.

Nguồn

http://www.fprintf.net/vimCheatSheet.html


All rights reserved

Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí