退出
Shortcut |
Description |
:w |
保存 |
:wq / :x |
保存并关闭 |
--- |
--- |
:q |
关闭文件 |
:q! |
关闭文件,放弃修改 |
--- |
--- |
:qa |
关闭所有文件 |
:qa! |
关闭所有文件,放弃修改 |
--- |
--- |
ZZ |
保存并退出 |
ZQ |
退出,且不检查变更 |
导航
Shortcut |
Description |
h j k l |
方向键 |
<C-u> / <C-d> |
翻半页 上/下 |
<C-b> / <C-f> |
翻一页 上/下 |
单词
Shortcut |
Description |
b / w |
前一个/后一个 单词的开头 |
ge / e |
前一个/后一个 单词的结尾 |
行
Shortcut |
Description |
0 (零) |
行开始 |
^ |
行开始 (非空白处) |
$ |
行结束 |
字符
Shortcut |
Description |
fx |
下一个字符x 处 |
Fx |
上一个字符x 处 |
文档
Shortcut |
Description |
gg |
第一行 |
G |
最后一行 |
:n |
跳转到第 n 行 |
nG |
跳转到第 n 行 |
窗口
Shortcut |
Description |
zz |
居中本行 |
zt |
置顶本行 |
zb |
置尾本行 |
H |
移动到窗口首行 |
M |
移动到窗口中间 |
L |
移动到窗口尾行 |
查找
Shortcut |
Description |
n |
下一个匹配项 |
N |
上一个匹配项 |
* |
当前光标所在单词的下一匹配项 |
# |
当前光标所在单词的上一匹配项 |
Tab页
Shortcut |
Description |
:tabedit [file] |
在新tab页中编辑文件 |
:tabfind [file] |
文件若存在,则在新标签中打开 |
:tabclose |
关闭当前tab |
:tabs |
列出所有tab |
:tabfirst |
跳转到第一个tab |
:tablast |
跳转到最后一个tab |
:tabn |
跳转到下一个tab |
:tabp |
跳转到上一个tab |
编辑
Shortcut |
Description |
a |
在光标后插入 |
A |
在行尾插入 |
i |
插入模式 |
o |
在当前行后插入一个新行 |
O |
在当前行前插入一个新行 |
--- |
--- |
s |
删除当前字符,并开启插入模式 |
S |
删除当前行,并开启插入模式 |
C |
删除至行尾,并开启插入模式 |
--- |
--- |
r |
替换一个字符 |
R |
开启替换模式 |
--- |
--- |
u |
撤销 |
<C-R> |
重做 |
退出插入模式
Shortcut |
Description |
Esc / <C-[> |
退出插入模式 |
<C-C> |
退出插入模式,并放弃当前命令 |
剪贴板
Shortcut |
Description |
x |
删除当前字符 |
--- |
--- |
dd |
删除当前行 (剪切) |
yy |
复制当前行 (复制),等于 ddp |
--- |
--- |
p |
粘贴 |
P |
粘贴在当前位置之前 |
--- |
--- |
"*p / "+p |
从系统剪贴板进行粘贴 |
"*y / "+y |
粘贴到系统剪贴板 |
视觉模式
Shortcut |
Description |
v |
进入视觉模式 |
V |
进入行视觉模式 |
<C-V> |
进入块视觉模式 |
在视觉模式中
Shortcut |
Description |
d / x |
删除选区内容 |
s |
替换选取内容 |
y |
复制当前行 (复制) |
更多操作可以参考 Operators
操作指令
使用
这些在正常模式下执行,根据指令范围不同,操作指定能操作一定区域的文本。
| d
| w
|
| 操作指令 | 指令范围 |
操作指令列表
Shortcut |
Description |
d |
删除 |
y |
复制 |
c |
变更 (先删除载插入) |
--- |
--- |
> |
向右缩进 |
< |
向左使劲 |
= |
自动缩进 |
--- |
--- |
g~ |
转换大小写 |
gU |
大写 |
gu |
小写 |
--- |
--- |
! |
通过外部程序过滤 |
示例
结合指令范围来应用操作指令。
Shortcut |
Description |
d d |
(重复字母) 删除当前行 |
d w |
删除下一个单词 |
d b |
删除到单词开头 |
2dd |
删除两行 |
d ip |
删除文本对象 (段落内部) |
(在视觉模式下) d |
删除选区内容 |
文本对象
使用
文本对象使您可以在文本块中或周围进行操作(使用操作指令)。
| v
| i
| p
|
| 操作指令 | 范围 [i]nside or [a]round | 文本对象 |
文本对象
Shortcut |
Description |
p |
段落 |
w |
单词 |
s |
句子 |
--- |
--- |
[ ( { < |
[], (), 或 {} 区块 |
' " ` |
引用字符串 |
--- |
--- |
b |
[( 块 |
B |
[{ 中的块 |
t |
XML 标签块 |
Examples
Shortcut |
Description |
vip |
选择段落 |
vipipipip |
选择更多 |
--- |
--- |
yip |
复制内部段落 |
yap |
复制段落 (包括新行) |
--- |
--- |
dip |
删除内部段落 |
cip |
更改内部段落 |
See Operators for other things you can do.
Diff
Shortcut |
Description |
gvimdiff file1 file2 [file3] |
See differences between files, in HMI |
杂项
{column_size: 2}
折叠
Shortcut |
Description |
zo / zO |
打开当前折叠 |
zc / zC |
折叠当前行 |
za / zA |
转换折叠状态 |
--- |
--- |
zv |
查看此行 |
--- |
--- |
zM |
关闭所有 |
zR |
打开所有 |
--- |
--- |
zm |
折叠更多 (折叠层级 += 1) |
zr |
折叠更少 (折叠层级 -= 1) |
--- |
--- |
zx |
更新折叠 |
大写的是递归操作 (例如, zO
是递归打开).
导航
Shortcut |
Description |
% |
最近/匹配 {[()]} |
[( [{ [< |
上一个 ( 或 { 或 < |
]) |
下一个 |
--- |
--- |
[m |
上一个方法开始 |
[M |
上一个方法结束 |
跳转
Shortcut |
Description |
<C-O> |
返回上一个光标位置 |
<C-I> |
跳转下一个光标位置 |
--- |
--- |
gf |
跳转到光标中的文件 |
计数器
Shortcut |
Description |
<C-A> |
+1 |
<C-X> |
-1 |
窗口
| z{height}<Cr>
| 将窗格调整为高{height}
行 |
标签
Shortcut |
Description |
:tag Classname |
跳转到第一个定义为Classname处 |
--- |
--- |
<C-]> |
跳转到定义 |
g] |
查看所有定义 |
<C-T> |
返回上一个标签 |
<C-O> <C-I> |
后退/前进 |
--- |
--- |
:tselect Classname |
查找Classname的定义 |
:tjump Classname |
查找Classname的定义 (自动选择第一个) |
大小写
Shortcut |
Description |
~ |
大小写转换 (Case => cASE) |
gU |
大写 |
gu |
小写 |
--- |
--- |
gUU |
大写当前行 (== gUgU ) |
guu |
小写当前行 (== gugu ) |
正常模式和视觉模式均可使用
标记
Shortcut |
Description |
`^ |
插入模式下光标的最后位置 |
`. |
当前缓冲区的最后更改 |
`" |
最后退出的当前缓冲区 |
`0 |
在上次编辑的文件中 |
'' |
返回当前缓冲区中从哪里跳到的行 |
`` |
返回当前缓冲区的位置 |
`[ |
到先前更改或粘贴的文本的开头 |
`] |
结束先前更改或粘贴的文本 |
`< |
到最后一次视觉选择的开始 |
`> |
结束最后的视觉选择 |
--- |
--- |
ma |
将此光标位置标记为a |
`a |
跳到光标位置a |
'a |
跳转到位置为a 的行的开头 |
d'a |
从当前行中删除标记 a 的行 |
d`a |
从当前位置删除到标记a的位置 |
c'a |
将文本从当前行更改为a 行 |
y`a |
将文本从当前位置复制到a的位置 |
--- |
--- |
:marks |
列出所有当前标记 |
:delm a |
删除标记 a |
:delm a-d |
删除标记 a , b , c , d |
:delm abc |
删除标记 a , b , c |
杂项
Shortcut |
Description |
. |
重复上一条命令 |
]p |
在当前缩进级别下粘贴 |
--- |
--- |
:set ff=unix |
将Windows行尾转换为Unix行尾(CRLF => LF ) |
命令行
Shortcut |
Description |
<C-R><C-W> |
将当前单词插入命令行 |
<C-R>" |
从“寄存器”粘贴 |
<C-X><C-F> |
在插入模式下自动补全路径 |
文本对齐
:center [width]
:right [width]
:left
// TODO
计算
Shortcut |
Description |
<C-R>=128/2 |
显示除法结果 '64' |
在插入模式中使用。
错误退出
:cq
:cquit
与:qa
类似,但是会引发错误。非常适合中止Git命令。
拼写检查
Shortcut |
Description |
:set spell spelllang = zh_CN |
打开美国英语拼写检查 |
]s |
光标后移至下一个拼错的单词 |
[s |
移至光标之前的上一个拼写错误的单词 |
z= |
在光标下方/之后建议拼写该单词 |
zg |
在单词列表中添加单词 |
zw |
将单词标记为错误/拼写错误 |
zu / C-X (Insert Mode) |
光标处错误单词的拼写建议 |
更多