Vim-cheatsheets速查表

退出

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
dd (重复字母) 删除当前行
dw 删除下一个单词
db 删除到单词开头
2dd 删除两行
dip 删除文本对象 (段落内部)
(在视觉模式下) 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) 光标处错误单词的拼写建议

更多


本站为非盈利网站,作品由网友提供上传,如无意中有侵犯您的版权,请联系删除