Home

光标移动

操作描述
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