使用 Vim

本文记录了 Vim 常用的快捷键作为备忘清单。

常用快捷键

移动光标

快捷键 功能
h, 光标向左移动一个字符
j, 光标向下移动一个字符
k, 光标向上移动一个字符
l, 光标向右移动一个字符
Ctrl + f, Page Down 屏幕向下移动一页
Ctrl + b, Page Up 屏幕向上移动一页
0 光标移动至本行开头
$ 光标移动至本行末尾
G 光标移动至文件最后一行
nG 光标移动至文件第n行
gg 光标移动至文件第一行
n<Enter> 光标向下移动n行
n<space> 光标向右移动n个字符
^ 光标移动至本行第一个非空字符处
w 光标移动到下一个词 (上一个字母和数字组成的词之后)
W 光标移动到下一个词 (以空格分隔的词)
b 光标移动到上一个词 (下一个字母和数字组成的词之前)
B 光标移动到上一个词 (以空格分隔的词)

查找和替换

快捷键 功能
/word 向光标之后搜索word
?word 向光标之前搜索word
n 重复前一个查找操作
N 反向进行前一个查找操作
:n1,n2s/original/replacement/g 在第n1行到第n2行之间查找original并替换为replacement
:1,$s/original/replacement/g 在第1行到最后一行之间查找original并替换为replacement
:1,$s/original/replacement/gc 在第1行到最后一行之间查找original并替换为replacement,替换前需确认
:%s/original/replacement 在所有行中查找行中第一个出现的original并替换为replacement

替换格式如下 :[range]s/<pattern>/[string]/[flags] [count]

删除/复制/粘贴

快捷键 功能
x 向后删除一个字符,相当于 Del
X 向前删除一个字符,相当于 Backspace
nx 向前删除n个字符
dd 删除(剪切)光标所在的行
ndd 删除(剪切)光标所在开始的n行
d1G 删除(剪切)光标所在到第1行的所有行
dG 删除(剪切)光标所在到最后一行的所有行
d$ 删除(剪切)光标所在到该行的最后一个字符
d0 删除(剪切)光标所在到该行的第一个字符
yy 复制光标所在的行
nyy 复制光标所在开始的n行
y1G 复制光标所在到第1行的所有行
yG 复制光标所在到最后一行的所有行
y$ 复制光标所在到该行的最后一个字符
y0 复制光标所在到该行的第一个字符
p 将复制的内容粘贴到光标所在的下一行
P 将复制的内容粘贴到光标所在的上一行
u 恢复前一个操作
Ctrl+r 重做上一个操作
. 重复前一个操作

进入编辑模式

快捷键 功能
i 进入插入模式,从光标所在处开始插入
I 进入插入模式,从光标所在行的第一个非空格开始插入
a 进入插入模式,从光标所在的下一个字符处开始插入
A 进入插入模式,从光标所在行的最后一个字符处开始插入
o 进入插入模式,在光标所在行的下一行插入新的一行
O 进入插入模式,在光标所在行的上一行插入新的一行
r 进入替换模式,只会替换光标所在的字符一次
R 进入替换模式,替换光标所在的字符,直到通过Esc退出
Esc 退出编辑模式,回到一般命令模式

保存和退出

快捷键 功能
:w 保存文件
:w! 若文件为只读,强制保存
:q 退出 Vim,如果文件已修改,将退出失败
:q! 强制退出 Vim,不保存文件修改
:wq 保存文件并退出 Vim
:w filename 另存为新文件
ZZ 退出 Vim,若文件无修改,则不保存退出;如果文件已修改,保存并退出
:r filename 读入另一个文件的数据并添加到光标所在行之后

额外功能

可视模式

快捷键 功能
v 字符选择,将光标经过的地方反白选择
V 行选择,将光标经过的行反白选择
Ctrl + v 区块选择,用矩形的方式反白选择
y 复制反白选择的地方
d 删除反白选择的地方
~ 对反白选择的地方切换大小写

多文件编辑

快捷键 功能
:n 编辑下一个文件
:N 编辑上一个文件
:files 列出当前 Vim 打开的所有文件

多窗口功能

快捷键 功能
:sp [filename] 打开一个新窗口
Ctrl + w + j
Ctrl + w +
光标移动到下方的窗口
Ctrl + w + k
Ctrl + w +
光标移动到上方的窗口
Ctrl + w + q
:q
:close
关闭窗口

关键词自动补全

快捷键 功能
Ctrl + x + Ctrl + n 使用当前文件的内容文字作为关键词,予以补齐
Ctrl + x + Ctrl + f 使用当前目录的文件名作为关键词,予以补齐
Ctrl + x + Ctrl + o 使用扩展名作为语法补充,以 Vim 内置的关键词,予以补齐

环境配置

设置参数 功能
:set nu
:set nonu
设置和取消行号
:syntax on
:syntax off
是否依据程序相关语法显示不同颜色

可以通过 vim ~/.vimrc 修改配置文件。

参考文章