Vim 入门指南

光标移动

操作 描述
h,j,k,l 依次是左,上,右,下
w 向后移动动到单词开头
e 向后移动到单词末尾
b 从当前光标位置移动到上一个单词开头
ge 从当前光标位置移动到上一个单词末尾
数字 + w/e/b 向前/后移动指定数字的单词
0 移动到行首
$ 移动到行尾
gg 移动到文件开头
G 移动到文件结尾
数字 + G 移动到指定数字行
Ctrl+b 屏幕往“后”移动一页。(b:backwards)
Ctrl+f 屏幕往“前”移动一页。(f:forwards)
Ctrl+u 屏幕往“后”移动半页。(u:up)
Ctrl+d 屏幕往“前”移动半页。(d:down)

文本编辑

操作 描述
. 可重复前一次操作
i 在光标所在位置之前插入字符
I 在光标所在行的开头插入字符
a 在光标所在位置之后插入字符
A 在光标所在行末尾插入字符
o 在光标所在行下一行插入字符
O 在光标所在行上一行插入字符

删除(剪切),复制,粘贴与恢复

操作 描述
x 删除光标所在位置的字符
X 删除光标左侧位置字符
dw 删除至下一个单词起始处,不包括下一个单词的第一个字符
de 删除至当前单词末尾,包括最后一个字符
d0 删除至当前行开头
d$,D 删除至当前行末尾
dd 删除当前行
数字+ dd 删除指定数字的行数
u 撤销最后执行的命令
U 撤销对整行的修改
CTRL-R 撤销以前的撤销命令,恢复之前的操作结果
v 进入字符可视化模式
V 进入行可视化模式
Ctrl+v 进入块可视化模式 (I/A 进入插入模式,可以进行多光标操作,esc退出后生效)
yy 复制当前行
数字 + yy 复制指定行数
p 粘贴

替换与更改

操作 描述
r[CHAR] 输入 r 和一个字符替换光标所在位置的字符
R 连续替换多个字符,与插入模式类似,不过每个输入的字符会替代光标当前字符,与键盘使用了 insert 键进入改写模式的情况类似
cw 更改文本直到该单词末尾
ce 更改文本直到下一单词开始
c$ 更改文本直到行末
c [数字] motion 基本格式

搜索与修改

操作 描述
/[STRING] 正向查找string表示的字符串
?[STRING] 逆向查找string表示的字符串
CTRL-O \ N 回到前一个位置
CTRL-I \ n 到下一个位置
:s/old/new 在光标所在行第一次出现的 old 表示的字符串替换为新的字符串 new
:s/old/new/g 在光标所在行替换所有出现的 old 所表示的字符串替换为新的字符串 new
:#,#s/old/new/g 在两行内替换所有的字符串 old 为新的字符串 new
:%s/old/new/g 在文件内替换所有的字符串 old 为新的字符串 new
:%s/old/new/gc 进行全文替换时询问用户确认每个替换

其他

操作 描述
F[CHAR] 光标移动到上一个 char 所指字母所在位置
f[CHAR] 光标移动到下一个 char 所指字母所在位置
F * 光标移动到当前光标所指单词相同的下一个位置
F # 光标移动到当前光标所指单词相同的上一个位置
CTRL-g/G 显示当前编辑文件中当前光标所在行位置以及文件状态信息
% 可查找匹配对的括号) \ ] \ }
:![COMMAND] 执行command所代表的外部命令
:r FILENAME 提取磁盘文件 FILENAME 并将其插入到当前文件光标当前位置后
:r !command 读取command命令的输出插入到当前文件光标当前位置后
:help <回车> / 键 帮助
:split / :vsplit 分屏
CTRL-W 窗口切换
:reg 查看剪切板
"np 粘贴剪切板内容(n表示剪切板的序号,【0-12】)eg: "5p
:set invlist 显示不可见字符

vim tutor