示意图
普通模式
快捷键 | 功能 |
---|---|
i | 进入插入模式,光标前插入 |
I | 进入插入模式,行首前插入 |
a | 从当前字符后插入光标 |
A | 从当前行后插入光标 |
o | 当前行后插入新一行 |
O | 当前行前插入新一行 |
^ | 移至行首 |
$ | 移至行末 |
h | 左移一个字符 |
j | 下移一个字符 |
J | 将下一行接到当前行尾部 |
k | 上移一个字符 |
l | 右移一个字符 |
H | 定位屏幕顶的行 |
M | 定位屏幕中间的行 |
L | 定位屏幕底部的行 |
w | 移动到下一个单词开头 |
b | 移动到上个单词开头 |
e | 移动到下一个单词结尾 |
ge | 移动到上个单词结尾 |
数字(其中数字0) | 向下移动指定行,数字零代表回当前行号后第一个字符位置 |
数字 + G | 移动到指定行首 |
ctrl + o | 回到上次的行,可多次回退,精确到行和列 |
ctrl + i | 回退回退的上次的行,可多次,与ctrl + o 相反方向 |
' ' | 两个单引号,回到上次的行,精确到行 |
\` \` | 两个反引号,回到上次的位置,精确到行和列,好用 |
. | 重复操作 |
u | 回退操作 |
ctrl + r | 回退的回退操作 |
f/F | 搜索行内f后写的字符,搜索F前的字符 |
t/T | 搜索行内某字符,并定位在它之前的那个字符 |
;/ , | 查找下一个字符 / 回退上一个字符 |
* | 选中当前单词,并高亮其他相同单词 |
n / N | 遍历下一个高亮单词 / 回退上一个遍历的字符 |
dd | 剪切当前行 |
x | 剪切当前字符 |
dw/daw/d3w | 选中单词头删除该单词/选中该单词任何字符删除该单词/删除后面3个单词 |
dl(x)/dap | 删除当前字符(两者等价)/删除当前段落 |
d$ 或D | 删除选中字符及以后该行所有字符 |
S | 删除选中单词及之前该行字符 |
cc | 选中当前行,整体修改 |
cw/caw | 选中单词头修改该单词/选中该单词任何字符修改该单词 |
yy | 复制当前行 |
p | 粘贴剪切板内容 |
\> \> | 缩进当前行 |
< < | 向左缩进当前行 |
= = | 自动缩进 |
[] | 跳到头 |
][ | 跳到尾 |
[[ | 跳到上一个函数 |
]] | 跳到下一个函数 |
zz | 重绘当前屏幕 |
gg | 定位到本文第一个字符 |
G | 定位到本文最后一行 |
gUw | 该字符及该字符后该单词 装换为大写 |
gUU | 该行转换为大写 |
gUaw | 该单词转换为大写 |
"0 | 调用复制专用寄存器,再按p即可粘贴 |
” +字母 | 调用一个有名寄存器 “a ~ z”,"jyy 将当前行写到j寄存器 |
” + 加号 | 加号寄存器 与系统剪切板对应,此加号是要写的 |
ci + { | 将{}括号内所有内容修改 |
di + { | 将{}内所有内容删除 |
yi + { | 将{}内所有内容复制 |
vi + { | 将{}内所有内容选中到块 |
ctrl + f | 转向前一页的行 |
ctrl + b | 转向后一页的行 |
ctrl + u | 转向前半页的行 |
ctrl + d | 转向后半页的行 |
ctrl + y | 视图转向前一行,光标未转移 |
ctrl + e | 视图转向后一行,光标未转移 |
ctrl + g | 列出问价一共多少行 |
m + 大小写字母 | 给当前字符添加标记 |
' + 大小写字母 | 回到标记所在行 |
\` + 大小写字母 | 回到标记字符 |
H | 转到屏幕顶端字符 |
M | 转到屏幕中间字符 |
L | 转到屏幕底端字符 |
zo | 展开一个折叠 |
zc | 收起一个折叠 |
za | 切换折叠状态 |
zR | 打开全部折叠 |
zM | 全部折叠 |
插入模式
快捷键 | 功能 |
---|---|
ctrl + w | 删除前一个单词 |
ctrl + u | 删除至行首 |
esc / ctrl + [ | 返回普通模式 |
ctrl + o | 只返回普通模式接收一个指令 |
ctrl + r+ 寄存器名 | 不离开插入模式粘贴一个寄存器,省略寄存器前缀 “ |
crtl + insert | 光标复制 |
shift + insert | 光标粘贴 |
命令行模式
快捷键 | 功能 |
---|---|
:数字 | 到指定行开头 |
/ 字符串 | 文档中搜索下一个匹配项 |
?字符串 | 文档中搜索上一个匹配项 |
: s/target/replacement | 执行替换 |
:w | 存盘 |
:w! | 强制存盘 |
:wq | 存盘退出 |
:x | 存盘退出 |
:q | 不存盘退出 |
:g/aaa/s//bbb/g | 将文件中的aaa 替换成bbb |
可视化模式
快捷键 | 功能 |
---|---|
v | 进入字符可视化 |
V | 进入行可视化 |
Ctrl + v | 列可视化 |
gv | 选中上次的选区 |
r + 字符 | 将选区每个字符位替换为所输入的字符 |
常用操作
快捷键 | 功能 |
---|---|
ggVG | 选中所有内容 |
ctrl + o + zz | 快速重绘屏幕(插入模式下,如在普通模式下,ctrl + o 有另外的含义) |
"+加号+p | 可粘贴系统剪切板的内容 |
"+加号+y | 可将vim里的内容复制到剪切板 |
m+ 字母 | 标记行 |
' + 字母 | 回到标记行 |
"+字母+yy | 将当前行复制到指定的寄存器 |
"+字母+p | 将指定寄存器内容粘贴 |
VGd | 将当前行及后面的所有行删除 |
gUU | 当前行转为大写 |
guu | 当前行转为小写 |
guw | 当前单词转换为小写 |
gUw | 当前单词转换为大写 |
Easymotion
快捷键 | 功能 |
---|---|
\ \s | 全文搜索后面提示符输入的字符 |
\ \f | 光标后搜索后面提示符输入的字符 |
\ \j | 加强版跳转后面的指定行 |
\ \k | 加强版跳转前面的指定行 |
\ \w | 跳转到前面单词的首位 |
\ \b | 跳转到后面单词的首位 |
\ \e | 跳转到后面单词的末尾 |
\ \ge | 跳转到前面单词的末尾 |