Vim 是一款功能强大的文本编辑器,其核心设计理念是通过模式切换来实现高效的键盘操作。
vim file1 file2 -o:水平分屏打开多个文件。
vim file1 file2 -O:垂直分屏打开多个文件。
vim file1 file2 -p:以标签页 (Tab) 形式打开多个文件。
vimdiff file1 file2:进入差异比对模式。
:ls:列出当前缓冲区 (Buffer) 中的所有文件。
:b [n]:跳转至第 n 个缓冲区(例如 :b1)。
:bn:跳转至下一个缓冲区 (Buffer Next)。
:bp:跳转至上一个缓冲区 (Buffer Previous)。
:bd:关闭当前缓冲区。
普通模式 (Normal Mode):默认模式,用于移动光标和基本的删除/复制操作。
插入模式 (Insert Mode):
i:在光标前插入。
a:在光标后插入。
I:在当前行行首插入。
A:在当前行行尾插入。
o:在当前行下方另起一行插入。
O:在当前行上方另起一行插入。
命令模式 (Command-line Mode):在普通模式下输入 : 进入。
视觉模式 (Visual Mode):用于选中块。
v:字符选中模式。
V:行选中模式。
Ctrl + v:块(矩形)选中模式。
h, j, k, l:左、下、上、右。
w:跳转到下一个单词词首。
b:跳转到上一个单词词首。
0(数字):跳转到行首。
$:跳转到行尾。
gg:跳转到文件第一行。
G:跳转到文件最后一行。
:n:跳转到第 n 行。
gf:打开光标处路径对应的文件 (Go to File)。
Ctrl + o:回到上一个光标位置。
Ctrl + i:前进到下一个光标位置。
Ctrl + f:向后翻一页 (Forward)。
Ctrl + b:向前翻一页 (Backward)。
Ctrl + d:向后翻半页 (Down)。
Ctrl + u:向前翻半页 (Up)。
x:删除当前光标处的字符。
dd:删除(剪切)当前行。
ndd:删除从当前行开始的 n 行。
d0:删除至行首。
D 或 d$:删除至行尾。
yy:复制当前行。
nyy:复制从当前行开始的 n 行。
p:在光标后/下方粘贴。
P:在光标前/上方粘贴。
u:撤销上次操作 (Undo)。
Ctrl + r:重做上次操作 (Redo)。
/pattern:向下查找字符串。
?pattern:向上查找字符串。
n:查找下一个。
N:查找上一个。
*:快速查找光标所在的单词。
:noh:取消当前搜索的高亮显示。
:%s/old/new/:替换每一行的第一个 old 为 new。
:%s/old/new/g:全局替换所有的 old 为 new。
:%s/old/new/gc:全局替换,但在替换前进行交互确认。
:n1,n2s/old/new/g:在第 n1 行到 n2 行之间进行替换。
:w:保存。
:wq:保存并退出。
:q!:强制退出,不保存修改。
:x:保存并退出(仅在有修改时写入文件)。
:g/pattern/d:删除所有匹配 pattern 的行。
:v/pattern/d:删除所有不匹配 pattern 的行。
:set nu:显示行号。
:set nonu:隐藏行号。
:vsp [filename]:垂直分屏打开新文件。
:sp [filename]:水平分屏打开新文件。
示例:批量注释代码
按下 Ctrl + v 进入块选择模式。
使用 j/k 选中多行的起始列。
按下 I(大写 i)进入插入模式。
输入注释符(如 // 或 #)。
按下 ESC 键,所选中的所有行都会生效。