VIM 参考手册 by Bram Moolenaar
译者: lang2
快速参考指南
quickref Contents
标签 主题 标签 主题
Q_ct 帮助文件清单 Q_re 重复命令
Q_lr 动作: 左右 Q_km 键盘映射
Q_ud 动作: 上下 Q_ab 缩写
Q_tm 动作: 文本对象 Q_op 选项
Q_pa 动作: 模式搜索 Q_ur 撤销/重做命令
Q_ma 动作: 位置标记 Q_et 外部命令
Q_vm 动作: 其他 Q_qf 快速修复命令
Q_ta 动作: 使用标签 Q_vc 其他命令
Q_sc 屏幕滚动 Q_ce Ex: 命令行编辑
Q_in 插入: 插入文本 Q_ra Ex: 范围
Q_ai 插入: 普通键 Q_ex Ex: 特殊字符
Q_ss 插入: 特殊键 Q_st 启动 Vim
Q_di 插入: 二合字母 Q_ed 文件编辑
Q_si 插入: 特殊插入 Q_fl 使用参数列表
Q_de 改动: 删除文本 Q_wq 写入与退出
Q_cm 改动: 复制与移动 Q_ac 自动命令
Q_ch 改动: 修改文本 Q_wi 多窗口命令
Q_co 改动: 复杂 Q_bu 缓冲区列表命令
Q_vi 可视模式 Q_sy 语法高亮
Q_to 文本对象 Q_gu GUI 命令
Q_fo 折叠
CTRL-H、<BS> 或 <Left> 键)
l N l 右 (亦: <Space> 或 <Right> 键)
0 0 至本行首字符 (亦: <Home> 键)
^ ^ 至本行首个非空白字符
$ N $ 至本行 (带 N 则先下移 N-1 行) 末尾字符 (亦: <End> 键)
g0 g0 至屏幕行首字符 (行回绕时不同于 "0")
g^ g^ 至屏幕行首个非空白字符 (行回绕时不同于 "^")
g$ N g$ 至屏幕行末尾字符 (行回绕时不同于 "$")
gm gm 至屏幕行中点
gM gM 至本行中点
bar N | 至第 N 列 (缺省: 1)
f N f{char} 至右边第 N 次出现 {char} 之处 (find)
F N F{char} 至左边第 N 次出现 {char} 之处 (Find)
t N t{char} 至右边第 N 次出现 {char} 之前 (till)
T N T{char} 至左边第 N 次出现 {char} 之后 (Till)
; N ; 重复最近的 "f"、"F"、"t" 或 "T" 命令 N 次
, N , 反向重复最近的 "f"、"F"、"t" 或 "T" 命令 N 次
CTRL-P 和 <Up>)
j N j 下移 N 行 (亦: CTRL-J、CTRL-N、<NL> 和 <Down>)
- N - 上移 N 行,停在首个非空白字符上
+ N + 下移 N 行,停在首个非空白字符上 (亦: CTRL-M 和 <CR>)
_ N _ 带 N 则先下移 N-1 行,停在首个非空白字符上
G N G 至第 N 行 (缺省: 末行),停在首个非空白字符上
gg N gg 至第 N 行 (缺省: 首行),停在首个非空白字符上
N% N % 至全文件行数百分之 N 处;必须给出 N,否则是 % 命令
gk N gk 上移 N 屏幕行 (回绕行时不同于 "k")
gj N gj 下移 N 屏幕行 (回绕行时不同于 "j")
{pattern}[/[offset]]<CR>
正向搜索 {pattern} 的第 N 次匹配
? N ?{pattern}[?[offset]]<CR>
反向搜索 {pattern} 的第 N 次匹配
/<CR> N /<CR> 正向重复上次搜索
?<CR> N ?<CR> 反向重复上次搜索
n N n 重复上次搜索命令 (保持原有方向)
N N N 反方向重复上次搜索命令
star N * 向前搜索光标下标识符
# N # 向后搜索光标下标识符
gstar N g* 类似 "*",但不要求完整单词匹配
g# N g# 类似 "#",但不要求完整单词匹配
gd gd 至光标下标识符的局部声明 (goto declaration)
gD gD 至光标下标识符的全局声明 (goto Declaration)
pattern 搜索模式中的特殊字符
含义 magic nomagic
匹配任意单个字符 . \.
匹配行首 ^ ^
匹配 <EOL> $ $
匹配单词开始 \< \<
匹配单词结束 \> \>
匹配指定范围中的单个字符 [a-z] \[a-z]
匹配不在指定范围中的单个字符 [^a-z] \[^a-z]
匹配单个标识符字符 \i \i
同上但不包括数位 \I \I
匹配单个关键字字符 \k \k
同上但不包括数位 \K \K
匹配单个文件名字符 \f \f
同上但不包括数位 \F \F
匹配单个可显示字符 \p \p
同上但不包括数位 \P \P
匹配单个空白字符 \s \s
匹配单个非空白字符 \S \S
匹配 <Esc> \e \e
匹配 <Tab> \t \t
匹配 <CR> \r \r
匹配 <BS> \b \b
匹配 0 或多个前导原子 * \*
匹配 1 或多个前导原子 \+ \+
匹配 0 或 1 个前导原子 \= \=
匹配 2 至 5 个前导原子 \{2,5} \{2,5}
分隔两个可选分支 \| \|
将模式分组,封装为单个原子 \(\) \(\)
search-offset 搜索命令后可额外指定的偏移
[num] 下移 [num] 行,停在首列
+[num] 下移 [num] 行,停在首列
-[num] 上移 [num] 行,停在首列
e[+num] 匹配结束 (end) 位置向右 [num] 个字符
e[-num] 匹配结束 (end) 位置向左 [num] 个字符
s[+num] 匹配开始 (start) 位置向右 [num] 个字符
s[-num] 匹配开始 (start) 位置向左 [num] 个字符
b[+num] 同 s[+num] (助记: begin 也是开始)
b[-num] 同 s[-num] (助记: begin 也是开始)
;{search-command} 接续执行新一轮搜索 {search-command}
{a-zA-Z} 用位置标记 {a-zA-Z} 记录当前位置
`a `{a-z} 至当前文件中的位置标记 {a-z}
`A `{A-Z} 至任意文件中的位置标记 {A-Z}
`0 `{0-9} 至上次 (1 号标记为上上次,依次类推) 退出 Vim 前的位置
`` `` 至上次跳转之前的位置
`quote `" 至上次编辑当前文件时的位置
`^ `^ 至上次退出插入模式时的位置
`[ `[ 至上次修改或放置文本的起始处
`] `] 至上次修改或放置文本的结束处
`< `< 至最近一次可视选区的起始处
`> `> 至最近一次可视选区的结束处
`. `. 至当前文件上次修改的位置
' '{a-zA-Z0-9[]'"<>.}
类似 `,但停在该行首个非空白字符上
:marks :marks 列出所有当前位置标记
CTRL-O N CTRL-O 在跳跃表里回退 N 个位置
CTRL-I N CTRL-I 在跳跃表里前进 N 个位置
:ju :ju[mps] 列出跳跃表
[range]go[to] [off] 至缓冲区第 [off] 个字节
{tag} 至标签 {tag}
:ta :[count]ta[g][!] 在标签栈上前进 [count] 个标签
CTRL-] CTRL-] 至光标下的标签,除非文件已修改
:ts :ts[elect][!] [tag] 列出标签 [tag] 所有匹配项,选中后跳转
:tjump :tj[ump][!] [tag] 至标签 [tag],有多个匹配项时,则从列表中选择
:ltag :lt[ag][!] [tag] 至标签 [tag],并把匹配项加入位置列表
:tags :tags 显示标签栈内容
CTRL-T N CTRL-T 在标签栈上回退 N 个标签
:po :[count]po[p][!] 在标签栈上回退 [count] 个标签
:tnext :[count]tn[ext][!] 至当前标签向下第 [count] 个匹配项
:tp :[count]tp[revious][!] 至当前标签向上第 [count] 个匹配项
:tr :[count]tr[ewind][!] 至当前标签第 [count] 个匹配项,缺省至首项
:tl :tl[ast][!] 至当前标签最后一个匹配项
:ptag :pt[ag] {tag} 在预览窗口中显示显示 {tag} 标签
CTRL-W_} CTRL-W } 同 CTRL-],但在预览窗口中显示标签
:pts :pts[elect] 同 ":tselect",但在预览窗口中显示标签
:ptjump :ptj[ump] 同 ":tjump",但在预览窗口中显示标签
:pclose :pc[lose] 关闭标签预览窗口
CTRL-W_z CTRL-W z 关闭标签预览窗口
CTRL-E 窗口下滚 N 行 (缺省: 1) (Extra)
CTRL-D N CTRL-D 窗口下滚 N 行 (缺省: 半屏) (Downwards)
CTRL-F N CTRL-F 窗口下滚 N 页 (Forwards)
CTRL-Y N CTRL-Y 窗口上滚 N 行 (缺省: 1) (Yester-line)
CTRL-U N CTRL-U 窗口上滚 N 行 (缺省: 半屏) (Upwards)
CTRL-B N CTRL-B 窗口上滚 N 页 (Backwards)
z<CR> z<CR> 或 zt 重绘并置顶当前行
z. z. 或 zz 重绘并居中当前行
z- z- 或 zb 重绘并置底当前行
以下仅当 'wrap' 选项关闭时生效:
zh N zh 屏幕右滚 N 个字符
zl N zl 屏幕左滚 N 个字符
zH N zH 屏幕右滚半个屏宽
zL N zL 屏幕左滚半个屏宽
<Insert>)
I N I 在当前行首个非空白字符前插入文本 (重复文本 N 次)
gI N gI 在行首插入文本 (重复文本 N 次)
o N o 在当前行下方开启新行,追加文本 (重复文本 N 次)
O N O 在当前行上方开启新行,追加文本 (重复文本 N 次)
:startinsert :star[tinsert][!] 开始插入模式,当使用 [!] 时追加文本
:startreplace :startr[eplace][!] 开始替换模式,当使用 [!] 时从行尾开始
在可视列块模式下:
v_b_I I 所有高亮行在选区前插入相同的文本
v_b_A A 所有高亮行在选区后追加相同的文本
<Esc> 退出插入模式,回到普通模式
i_CTRL-C CTRL-C 同 <Esc>,但不检查缩写
i_CTRL-O CTRL-O {command} 执行普通模式命令 {command} 后,返回插入模式
移动:
i_<Up> 光标键 左/右/上/下移动光标
i_<S-Left> Shift+左/右方向键 左/右移动一个单词
i_<S-Up> Shift+上/下方向键 视窗上/下滚一屏
i_<End> <End> 至行尾之后
i_<Home> <Home> 至行首
CTRL-V {char}.. 按本义插入非数位字符,或插入十进制值字符值
i_<NL> <NL> 或 <CR> 或 CTRL-M 或 CTRL-J
开启新行
i_CTRL-E CTRL-E 插入光标下方的字符
i_CTRL-Y CTRL-Y 插入光标上方的字符
i_CTRL-A CTRL-A 插入最近插入的文本
i_CTRL-@ CTRL-@ 插入最近插入的文本并退出插入模式
i_CTRL-R CTRL-R {register} 插入寄存器内容
i_CTRL-N CTRL-N 插入光标前标识符的下一个匹配项
i_CTRL-P CTRL-P 插入光标前标识符的上一个匹配项
i_CTRL-X CTRL-X ... 以各种方式补全光标前的单词
i_<BS> <BS> 或 CTRL-H 删除光标前的字符
i_<Del> <Del> 删除光标下的字符
i_CTRL-W CTRL-W 删除光标前的单词
i_CTRL-U CTRL-U 删除当前行中本次输入的全部内容
i_CTRL-T CTRL-T 当前行增加一层缩进 ('shiftwidth')
i_CTRL-D CTRL-D 当前行减少一层缩进 ('shiftwidth')
i_0_CTRL-D 0 CTRL-D 删除当前行所有缩进
i_^_CTRL-D ^ CTRL-D 删除当前行所有缩进,并在下一行恢复删除的缩进
{char1}{char2} {number} ...
将二合字母加入列表
在插入或命令行方式下:
i_CTRL-K CTRL-K {char1} {char2}
键入二合字母
i_digraph {char1} <BS> {char2}
置位 'digraph' 选项时,键入二合字母
[file] 将文件 [file] 内容插入光标下方
:r! :r! {command} 将命令 {command} 的标准输出插入光标下方
<Del> 删除光标之下及之后的 N 个字符
X N X 删除光标之前的 N 个字符
d N d{motion} 删除动作 {motion} 覆盖的文本
v_d {visual}d 删除高亮文本
dd N dd 删除 N 行
D N D 删除到行尾 (及 N-1 后续行)
J N J 并入后续 N-1 行 (删除 <EOL>)
v_J {visual}J 合并高亮行
gJ N gJ 类似 "J",但不插入空格
v_gJ {visual}gJ 类似 "{visual}J",但不插入空格
:d :[range]d [x] 删除 [range] 范围内的所有行 [到寄存器 x]
{char} 指定下一次删除、抽出或放置命令使用寄存器 {char}
:reg :reg 显示所有寄存器的内容
:reg :reg {arg} 显示寄存器 {arg} 的内容
y N y{motion} 抽出 {motion} 动作覆盖的文本到寄存器
v_y {visual}y 抽出高亮文本到寄存器
yy N yy 抽出 N 行到寄存器
Y N Y 抽出 N 行到寄存器
p N p 在光标后放置寄存器内容 (N 次)
P N P 在光标前放置寄存器内容 (N 次)
]p N ]p 类似 p,但放置后自动调整当前行缩进
[p N [p 类似 P,但旋转后自动调整当前行缩进
gp N gp 类似 p,但光标停在新文本之后的位置,而非新文本末尾
gP N gP 类似 P,但光标留在新文本之后的位置
{char} 以 {char} 替换 N 个字符
gr N gr{char} 替换 N 个虚拟字符,不影响布局
R N R 进入替换模式 (键入文本会重复 N 次)
gR N gR 进入虚拟替换模式: 和替换模式类似,但不影响布局
v_b_r {visual}r{char}
在可视列块模式下: 以 {char} 替换所有选中文本
(以下命令中的修改 = 删除文本并进入插入模式)
c N c{motion} 修改 {motion} 动作覆盖的文本
v_c {visual}c 修改高亮文本
cc N cc 修改 N 行
S N S 修改 N 行
C N C 修改至行尾 (及 N-1 后续行)
s N s 修改 N 个字符
v_b_c {visual}c 在可视列块模式下: 用键入文本替换选中文本的每一行
v_b_C {visual}C 在可视列块模式下: 用键入文本替换所有选中行至行末的内容
~ N ~ 切换 N 个字符的大小写,并前移光标
v_~ {visual}~ 切换高亮文本的大小写
v_u {visual}u 将高亮文本全部转为小写
v_U {visual}U 将高亮文本全部转为大写
g~ g~{motion} 切换 {motion} 动作覆盖的文本的大小写
gu gu{motion} 将 {motion} 动作覆盖的文本转为小写
gU gU{motion} 将 {motion} 动作覆盖的文本转为大写
v_g? {visual}g? 用 rot13 编码高亮文本
g? g?{motion} 用 rot13 编码 {motion} 动作覆盖的文本
CTRL-A N CTRL-A 将光标所在或之后的数值增加 N
CTRL-X N CTRL-X 将光标所在或之后的数值减去 N
< N <{motion} 左移 {motion} 动作覆盖行 'shiftwidth' 列
<< N << 左移 N 行 'shiftwidth' 列
> N >{motion} 右移 {motion} 动作覆盖行 'shiftwidth' 列
>> N >> 右移 N 行 'shiftwidth' 列
gq N gq{motion} 排版 {motion} 动作覆盖行,使用 'textwidth' 行宽
:ce :[range]ce[nter] [width]
居中对齐 [range] 范围内的所有行
:le :[range]le[ft] [indent]
左对齐 [range] 范围内的所有行 (使用 [indent])
:ri :[range]ri[ght] [width]
右对齐 [range] 范围内的所有行
{motion}{command}<CR>
用 {command} 命令过滤 {motion} 动作覆盖行
!! N !!{command}<CR>
用 {command} 命令过滤 N 行
v_! {visual}!{command}<CR>
用 {command} 命令过滤高亮行
:range! :[range]! {command}<CR>
用 {command} 命令过滤 [range] 范围内的所有行
= N ={motion}
用 'equalprg' 过滤 {motion} 动作覆盖行
== N == 用 'equalprg' 过滤 N 行
v_= {visual}=
用 'equalprg' 过滤高亮行
:s :[range]s[ubstitute]/{pattern}/{string}/[g][c]
在 [range] 行范围内,用 {string} 替代 {pattern};
给出 [g] 时,替代所有 {pattern} 的出现;
给出 [c] 时,确认每一次替代
:s :[range]s[ubstitute] [g][c]
使用新的范围和选项重复上次的 ":s" 命令
& & 在当前行上重复上次的 ":s" 命令,不使用选项
:ret :[range]ret[ab][!] [tabstop]
将 'tabstop' 设为新值,并相应调整空白字符
CTRL-V 以列块方式开始高亮 } 作用于高亮文本
v_o o 交换光标位置与高亮选区起始位置
gv gv 高亮上次可视选区
v_v v 进入字符可视模式,或停止高亮
v_V V 进入行可视模式,或停止高亮
v_CTRL-V CTRL-V 进入列块可视模式,或停止高亮
<> 块"
v_i> N i> 选择 "内含 <> 块"
v_at N at 选择 "一个标签块" (从 <aaa> 到 </aaa>) (tag)
v_it N it 选择 "内含标签块" (从 <aaa> 到 </aaa>)
v_a' N a' 选择 "一个单引号字符串"
v_i' N i' 选择 "内含单引号字符串"
v_aquote N a" 选择 "一个双引号字符串"
v_iquote N i" 选择 "内含双引号字符串"
v_a` N a` 选择 "一个反引号字符串"
v_i` N i` 选择 "内含反引号字符串"
{a-z} 录制键序列到寄存器 {a-z}
q q{A-Z} 录制键序列追加到寄存器 {a-z}
q q 终止录制
@ N @{a-z} 执行寄存器 {a-z} 的内容 (N 次)
@@ N @@ 重复上次的 @{a-z} 命令 (N 次)
:@ :@{a-z} 将寄存器 {a-z} 的内容作为 Ex 命令执行
:@@ :@@ 重复上次的 :@{a-z} 命令
:g :[range]g[lobal]/{pattern}/[cmd]
对 [range] 内匹配 {pattern} 的各行执行 Ex 命令 [cmd]
(缺省命令: ":p")
:g :[range]g[lobal]!/{pattern}/[cmd]
对 [range] 内 不 匹配 {pattern} 的各行执行 Ex 命令
[cmd] (缺省命令: ":p")
:so :so[urce] {file}
从文件 {file} 读入并执行 Ex 命令
:so :so[urce]! {file}
从文件 {file} 读入并执行 Vim 命令
:sl :sl[eep] [sec]
暂停 [sec] 秒
gs N gs 暂停 N 秒 (goto sleep)
{lhs} {rhs} 在普通及可视模式下将 {rhs} 映射为 {lhs}
:map! :ma[p]! {lhs} {rhs} 在插入及命令行模式下将 {rhs} 映射为 {lhs}
:noremap :no[remap][!] {lhs} {rhs}
类似 ":map",但不对 {rhs} 重新映射 (非递归)
:unmap :unm[ap] {lhs} 清除普通及可视模式下 {lhs} 的映射
:unmap! :unm[ap]! {lhs} 清除插入及命令行模式下 {lhs} 的映射
:map_l :ma[p] [lhs] 列出普通及可视模式下以 [lhs] 开头的映射
:map_l! :ma[p]! [lhs] 列出插入及命令行模式下以 [lhs] 开头的映射
:cmap :cmap/:cunmap/:cnoremap
类似 ":map!"/":unmap!"/":noremap!",
但仅用于命令行模式 (Command-line)
:imap :imap/:iunmap/:inoremap
类似 ":map!"/":unmap!"/":noremap!",
但仅用于插入模式 (Insert)
:nmap :nmap/:nunmap/:nnoremap
类似 ":map"/":unmap"/":noremap",
但仅用于普通模式 (Normal)
:vmap :vmap/:vunmap/:vnoremap
类似 ":map"/":unmap"/":noremap",
但仅用于可视模式 (Visual)
:omap :omap/:ounmap/:onoremap
类似 ":map"/":unmap"/":noremap",
但仅用于操作符等待模式 (Operator-pending)
:mapc :mapc[lear] 清除普通及可视模式下的映射
:mapc :mapc[lear]! 清除插入及命令行模式下的映射
:imapc :imapc[lear] 清除插入模式下的映射
:vmapc :vmapc[lear] 清除可视模式下的映射
:omapc :omapc[lear] 清除操作符等待模式下的映射
:nmapc :nmapc[lear] 清除普通模式下的映射
:cmapc :cmapc[lear] 清除命令行模式下的映射
:mkexrc :mk[exrc][!] [file] 将当前映射、缩写及设置写入文件 [file] (缺省:
".exrc";可用 ! 覆盖已有文件),可用于恢复
:mkvimrc :mkv[imrc][!] [file]
类似 ":mkexrc",但缺省为 ".vimrc"
:mksession :mks[ession][!] [file]
类似 ":mkvimrc",但同时保存当前文件、窗口等
信息,以便以后恢复当前对话
{lhs} {rhs} 为 {rhs} 加入缩写 {lhs}
:abbreviate :ab[breviate] {lhs} 列出以 {lhs} 开头的缩写
:abbreviate :ab[breviate] 列出所有缩写
:unabbreviate :una[bbreviate] {lhs} 删除 {lhs} 对应的缩写
:noreabbrev :norea[bbrev] [lhs] [rhs] 类似 ":ab",但不对 [rhs] 重映射
:iabbrev :iab/:iunab/:inoreab 类似 ":ab",但仅用于插入模式
:cabbrev :cab/:cunab/:cnoreab 类似 ":ab",但仅用于命令行模式
:abclear :abc[lear] 清除所有缩写
:cabclear :cabc[lear] 清除所有命令行模式下的缩写
:iabclear :iabc[lear] 清除所有插入模式下的缩写
{option} 置位布尔选项 (开启),
或显示字符串/数值选项
:set :se[t] no{option} 复位布尔选项 (关闭)
:set :se[t] inv{option} 反转布尔选项值
:set :se[t] {option}={value} 将字符串/数值选项值设为 {value}
:set :se[t] {option}+={value} 将 {value} 追加到字符串选项,
或将 {value} 加到数值选项上
:set :se[t] {option}-={value} 从字符串选项里移除 {value},
或从数值选项里减去 {value}
:set :se[t] {option}? 显示 {option} 当前值
:set :se[t] {option}& 恢复 {option} 缺省值
:setlocal :setl[ocal] 类似 ":set",对局部选项设定其局部值
:setglobal :setg[lobal] 类似 ":set",对局部选项设定其全局值
:fix :fix[del] 根据 't_kb' 的值来设置 't_kD'
:options :opt[ions] 新建窗口,按功能分类显示与修改选项,
每项附带单行说明与帮助文档跳转链接
选项速查表: option-list
'aleph' 'al' Aleph (希伯来字母) 的 ASCII 代码
'allowrevins' 'ari' 在插入和命令行模式下允许 CTRL-_
'altkeymap' 'akm' 已废弃的波斯语选项
'ambiwidth' 'ambw' Unicode 二义性宽度字符的处理方式
'antialias' 'anti' Mac OS X: 使用抗锯齿平滑字体
'arabic' 'arab' 使用阿拉伯语为缺省第二语言
'arabicshape' 'arshape' 阿拉伯字符字型重整
'autochdir' 'acd' 自动切换到当前窗口文件所在目录
'autocomplete' 'ac' 启用插入模式自动补全
'autocompletedelay' 'acl' 自动补全菜单显示延迟 (毫秒)
'autocompletetimeout' 'act' 自动补全算法初始衰减超时 (毫秒)
'autoindent' 'ai' 新行继承上一行缩进
'autoread' 'ar' 文件检测出外部修改时自动重读
'autoshelldir' 'asd' 自动同步外壳当前目录
'autowrite' 'aw' 自动保存已修改文件
'autowriteall' 'awa' 类似 'autowrite',但适用于更多命令
'background' 'bg' "dark" 或 "light" 选择深浅色背景,自动适配高亮配色
'backspace' 'bs' 行首退格键行为
'backup' 'bk' 覆盖文件后保留备份文件
'backupcopy' 'bkc' 备份使用复制而非换名机制
'backupdir' 'bdir' 备份文件存放目录列表
'backupext' 'bex' 备份文件扩展名
'backupskip' 'bsk' 免备份文件模式
'balloondelay' 'bdlay' 气泡提示延迟 (毫秒)
'ballooneval' 'beval' GUI 中启用气泡求值
'balloonevalterm' 'bevalterm' 终端中启用气泡求值
'balloonexpr' 'bexpr' 气泡提示表达式
'belloff' 'bo' 响铃关闭事件列表
'binary' 'bin' 以二进制方式读/写/编辑文件
'bioskey' 'biosk' 已废弃 MS-DOS 功能: 通过 bios 调用获取输入
'bomb' 文件前添加字节顺序标记 (Byte Order Mark)
'breakat' 'brk' 可换行字符列表
'breakindent' 'bri' 回绕行保持视觉缩进
'breakindentopt' 'briopt' 'breakindent' 所用设置
'browsedir' 'bsdir' 文件浏览器起始目录
'bufhidden' 'bh' 本缓冲区离开窗口后的处理方式
'buflisted' 'bl' 本缓冲区是否列入缓冲区列表
'buftype' 'bt' 缓冲区特殊类型
'casemap' 'cmp' 字母大小写转换机制
'cdhome' 'cdh' 无参数 ":cd" 切换到用户主目录
'cdpath' 'cd' ":cd" 搜索目录列表
'cedit' 打开命令行窗口的按键
'charconvert' 'ccv' 字符编码转换表达式
'chistory' 'chi' 快速修复列表历史最大保存条数
'cindent' 'cin' 开启 C 程序缩进
'cinkeys' 'cink' 'cindent' 使用的缩进触发键
'cinoptions' 'cino' 'cindent' 使用的缩进设置
'cinscopedecls' 'cinsd' cino-g 识别的声明关键字
'cinwords' 'cinw' 'si' 和 'cin' 额外缩进触发关键字
'clipboard' 'cb' 使用剪贴板作为无名寄存器
'clipmethod' 'cpm' 剪贴板访问方法采用顺序
'cmdheight' 'ch' 命令行使用行数
'cmdwinheight' 'cwh' 命令行窗口高度
'colorcolumn' 'cc' 高亮屏幕列列表
'columns' 'co' 屏幕列数
'comments' 'com' 注释行模式列表
'commentstring' 'cms' 注释行样板;用于折叠标志
'compatible' 'cp' Vi 兼容 (尽最大限度) 模式
'complete' 'cpt' 插入模式补全来源
'completefunc' 'cfu' 插入模式补全函数
'completeitemalign' 'cia' 插入模式补全菜单项目对齐顺序
'completeopt' 'cot' 插入模式补全选项
'completepopup' 'cpp' 插入模式补全信息弹窗选项
'completeslash' 'csl' 补全时使用的斜杠方式,覆盖 'shellslash' 设置
'completetimeout' 'cto' CTRL-N 和 CTRL-P 插入模式补全初始衰减超时 (毫秒)
'concealcursor' 'cocu' 光标行隐藏文本模式列表
'conceallevel' 'cole' 隐藏文本显示级别
'confirm' 'cf' 启用未保存/只读文件操作询问对话框
'conskey' 'consk' 已废弃 MS-DOS 功能: 直接从控制台读入按键
'copyindent' 'ci' 'autoindent' 会复制现有缩进结构
'cpoptions' 'cpo' Vi-兼容行为设置
'cryptmethod' 'cm' 文件写入加密方法
'cscopepathcomp' 'cspc' cscope 显示路径层级数
'cscopeprg' 'csprg' cscope 程序名
'cscopequickfix' 'csqf' cscope 检索结果快速修复窗口展示规则
'cscoperelative' 'csre' cscope.out 所在目录用作路径前缀
'cscopetag' 'cst' 标签命令由 cscope 处理
'cscopetagorder' 'csto' ":cstag" 搜索顺序
'cscopeverbose' 'csverb' 添加 cscope 数据库时给出提示
'cursorbind' 'crb' 与其他窗口同步移动光标
'cursorcolumn' 'cuc' 高亮光标所在屏幕列
'cursorline' 'cul' 高亮光标所在屏幕行
'cursorlineopt' 'culopt' 'cursorline' 设置
'debug' 调试选项,设为 "msg" 可查看全部错误消息
'define' 'def' 宏定义匹配模式
'delcombine' 'deco' 单独删除组合字符
'dictionary' 'dict' 用于关键字自动补全的词典文件列表
'diff' 本窗口启用比较模式
'diffanchors' 'dia' 比较强制锚点地址列表
'diffexpr' 'dex' 比较文件生成表达式
'diffopt' 'dip' 比较模式选项
'digraph' 'dg' 插入模式启用二合字母输入
'directory' 'dir' 交换文件存放目录名列表
'display' 'dy' 文本显示控制标志位列表
'eadirection' 'ead' 'equalalways' 窗口等分生效方向
'edcompatible' 'ed' :substitute 命令标志位打开交替切换
'emoji' 'emo' 表情字符视作全宽字符
'encoding' 'enc' 内部处理所用字符编码
'endoffile' 'eof' 文件末尾写入 CTRL-Z 字符
'endofline' 'eol' 文件末行是否存在 <EOL>,保存时自动同步
'equalalways' 'ea' 自动统一窗口尺寸
'equalprg' 'ep' = 格式化命令所用外部程序
'errorbells' 'eb' 报错时触发响铃
'errorfile' 'ef' 快速修复模式专用错误文件名
'errorformat' 'efm' 错误文件行解析模板列表
'esckeys' 'ek' 插入模式可识别 <Esc> 开头的功能键
'eventignore' 'ei' 全局忽略的自动命令事件列表
'eventignorewin' 'eiw' 本窗口忽略的自动命令事件列表
'expandtab' 'et' 自动用空格展开 <Tab>
'exrc' 'ex' 允许读取当前目录下的 .vimrc 和 .exrc
'fileencoding' 'fenc' 当前文件编码 (用于多字节文本),读写时自动转换
'fileencodings' 'fencs' 自动检测文件字符编码优先级列表
'fileformat' 'ff' 当前文件换行格式,读写时自动转换
'fileformats' 'ffs' 参与自动检测的 'fileformat' 格式
'fileignorecase' 'fic' 文件名匹配时忽略大小写
'filetype' 'ft' 本缓冲区文件类型,用于绑定自动命令
'fillchars' 'fcs' 各类占位装饰显示字符
'findfunc' 'ffu' :find 自定义文件查找函数
'fixendofline' 'fixeol' 强制文件末行添加 <EOL>
'fkmap' 'fk' 已废弃的波斯语选项
'foldclose' 'fcl' 光标离开折叠区域时自动关闭折叠
'foldcolumn' 'fdc' 折叠指示列宽度
'foldenable' 'fen' 保留折叠状态,关闭时展开所有折叠
'foldexpr' 'fde' 'foldmethod' 为 "expr" 时所用折叠级别表达式
'foldignore' 'fdi' 'foldmethod' 为 "indent" 时不继承折叠级别的行模式
'foldlevel' 'fdl' 折叠级别,高于此级别的折叠会自动关闭
'foldlevelstart' 'fdls' 打开文件时的初始 'foldlevel' 值
'foldmarker' 'fmr' 'foldmethod' 为 "marker" 时所用起止标志
'foldmethod' 'fdm' 折叠方式
'foldminlines' 'fml' 折叠关闭所需最少行数
'foldnestmax' 'fdn' 最大折叠嵌套深度
'foldopen' 'fdo' 自动展开折叠的命令类型
'foldtext' 'fdt' 关闭折叠展示文本的生成表达式
'formatexpr' 'fex' gq 命令自定义排版表达式
'formatlistpat' 'flp' 列表项引导模式
'formatoptions' 'fo' 自动排版工作方式标志位列表
'formatprg' 'fp' gq 命令所用外部程序
'fsync' 'fs' 文件保存后是否执行磁盘同步 fsync()
'gdefault' 'gd' :substitute 缺省开启全局匹配 'g' 标志位
'grepformat' 'gfm' 'grepprg' 输出解析模板
'grepprg' 'gp' :grep 命令所用外部程序
'guicursor' 'gcr' GUI: 光标外观和闪烁设置
'guifont' 'gfn' GUI: 常规字体名列表
'guifontset' 'gfs' GUI: 多字节文本配套字体名列表
'guifontwide' 'gfw' GUI: 全宽字符专用字体名列表
'guiheadroom' 'ghr' GUI: 窗口装饰预留像素高度
'guiligatures' 'gli' GTK GUI: 合并时可生成复杂字形的 ASCII 字符列表
'guioptions' 'go' GUI: 界面组件及相关选项
'guipty' GUI: :! 命令尝试使用伪终端运行
'guitablabel' 'gtl' GUI: 标签页行自定义标签文本
'guitabtooltip' 'gtt' GUI: 标签页行自定义工具提示文本
'helpfile' 'hf' 主帮助文档完整路径名
'helpheight' 'hh' 新建帮助窗口最小高度
'helplang' 'hlg' 首选帮助文档语言
'hidden' 'hid' 放弃缓冲区 ( abandon ) 时仅隐藏而不卸载
'highlight' 'hl' 各类场景高亮模式设置
'history' 'hi' 命令行历史最大保存条数
'hkmap' 'hk' 启用希伯来语键盘映射
'hkmapp' 'hkp' 启用希伯来语音译 (phonetic) 键盘映射
'hlsearch' 'hls' 自动高亮前次搜索模式的所有匹配项
'icon' 允许 Vim 自动设置窗口图标文本
'iconstring' Vim 窗口图标文本自定义格式
'ignorecase' 'ic' 搜索模式忽略大小写
'imactivatefunc' 'imaf' 开关 X 输入法时的回调函数,用于输入法自定义实现
'imactivatekey' 'imak' X 输入法 (X input method) 触发热键
'imcmdline' 'imc' 命令行输入时启用输入法
'imdisable' 'imd' 所有模式禁用输入法
'iminsert' 'imi' 插入模式启用语言映射 ( :lmap ) 或输入法
'imsearch' 'ims' 搜索模式输入时启用语言映射 ( :lmap ) 或输入法
'imstatusfunc' 'imsf' 获取 X 输入法状态的回调函数,用于输入法自定义实现
'imstyle' 'imst' 输入法输入面板显示方式
'include' 'inc' 包含文件匹配模式
'includeexpr' 'inex' 包含文件名转换表达式
'incsearch' 'is' 输入搜索字符时实时高亮部分匹配
'indentexpr' 'inde' 行缩进计算表达式
'indentkeys' 'indk' 'indentexpr' 使用的缩进触发键
'infercase' 'inf' 关键字自动补全时自动调整匹配项大小写
'insertmode' 'im' 打开文件时缺省进入插入模式
'isfname' 'isf' 文件和路径名合法字符集
'isident' 'isi' 标识符合法字符集
'iskeyword' 'isk' 关键字合法字符集
'isprint' 'isp' 可显示字符集
'joinspaces' 'js' 合并命令在句号之后加两个空格,而非一个
'jumpoptions' 'jop' 跳跃表行为设置
'key' 文件加密密钥
'keymap' 'kmp' 键盘映射表名
'keymodel' 'km' 允许用按键开始/停止文本选择
'keyprotocol' 'kpc' 终端所用键盘协议
'keywordprg' 'kp' K 命令所用外部程序或 Ex 命令
'langmap' 'lmap' 非英语键盘英语字母映射
'langmenu' 'lm' 菜单显示语言
'langnoremap' 'lnr' 仅为后向兼容,映射后字符不适用 'langmap'
'langremap' 'lrm' 映射后字符同样适用 'langmap'
'laststatus' 'ls' 屏幕最下方窗口的状态行显示方式
'lazyredraw' 'lz' 执行宏时暂停刷新界面
'lhistory' 'lhi' 位置列表历史最大保存条数
'linebreak' 'lbr' 仅在 'breakat' 指定字符处 (空白标点) 回绕长行
'lines' 屏幕行数
'linespace' 'lsp' 字符间纵向像素间距
'lisp' 开启 lisp 自动缩进
'lispoptions' 'lop' lisp 缩进设置
'lispwords' 'lw' lisp 特殊关键字,应用不同缩进规则
'list' 列出模式,显示 <Tab> 和 <EOL> 等特殊标记
'listchars' 'lcs' 列出模式下各类字符显示设置
'loadplugins' 'lpl' 启动时自动加载插件脚本
'luadll' Lua 动态库名
'macatsui' 已废弃 Mac GUI 功能: 使用 ATSUI 渲染文本
'magic' 搜索模式启用特殊字符语义
'makeef' 'mef' :make 输出的错误文件名
'makeencoding' 'menc' 外部 make/grep 命令输出编码
'makeprg' 'mp' :make 命令所用外部程序
'matchpairs' 'mps' 配对字符列表,用于 % 自动跳转
'matchtime' 'mat' 匹配括号高亮显示时长 (十分之一秒)
'maxcombine' 'mco' 显示用最大组合字符数
'maxfuncdepth' 'mfd' 用户函数最大递归深度
'maxmapdepth' 'mmd' 映射最大递归深度
'maxmem' 'mm' 单个缓冲区占用内存上限 (千字节)
'maxmempattern' 'mmp' 模式匹配占用内存上限 (千字节)
'maxmemtot' 'mmt' 所有缓冲区总内存占用上限 (千字节)
'maxsearchcount' 'msc' 搜索计数状态显示最大匹配数
'menuitems' 'mis' 单级菜单可最多可用条目
'messagesopt' 'mopt' 提示消息输出控制选项
'mkspellmem' 'msm' :mkspell 压缩单词树前最大可用内存
'modeline' 'ml' 在文件首尾自动识别模式行
'modelineexpr' 'mle' 模式行允许设置表达式选项
'modelines' 'mls' 文件首尾模式行扫描行数
'modelinestrict' 'mlst' 模式行仅允许安全选项
'modifiable' 'ma' 本缓冲区禁止文本修改
'modified' 'mod' 本缓冲区已被修改
'more' 输出占满一屏幕时暂停列表
'mouse' 启用鼠标支持,可指定生效模式
'mousefocus' 'mousef' 键盘焦点追随鼠标点击
'mousehide' 'mh' 输入字符时自动隐藏鼠标指针
'mousemodel' 'mousem' 鼠标按钮工作模式
'mousemoveevent' 'mousemev' 捕获鼠标移动,触发 <MouseMove> 事件
'mouseshape' 'mouses' 模式对应鼠标指针外观列表
'mousetime' 'mouset' 鼠标双击最大间隔时长 (毫秒)
'mzquantum' 'mzq' MzScheme 线程轮询间隔
'mzschemedll' MzScheme 动态库名
'mzschemegcdll' MzScheme 垃圾回收动态库名
'nrformats' 'nf' CTRL-A 增减数值命令可识别的数值格式
'number' 'nu' 行前显示行号
'numberwidth' 'nuw' 行号栏占用列宽
'omnifunc' 'ofu' 文件类型专属 (全能) 补全函数
'opendevice' 'odev' MS-Windows 允许读/写设备文件
'operatorfunc' 'opfunc' g@ 操作符所用自定义操作符函数
'osctimeoutlen' 'ost' 等待 OSC 终止符超时 (毫秒)
'osfiletype' 'oft' 已废弃 RISC OS 功能,不再支持
'packpath' 'pp' 软件包目录列表
'paragraphs' 'para' 段落划分 nroff 宏
'paste' 开启粘贴模式
'pastetoggle' 'pt' 切换 'paste' 的快捷键
'patchexpr' 'pex' 应用补丁表达式
'patchmode' 'pm' 保留文件最旧版本备份,指定备份扩展名
'path' 'pa' gf 等文件查找命令所用搜索目录列表
'perldll' Perl 动态库名
'preserveindent' 'pi' 重新排版时保留原有缩进结构
'previewheight' 'pvh' 预览窗口高度
'previewpopup' 'pvp' 预览功能使用弹窗
'previewwindow' 'pvw' 标记本窗口为预览窗口
'printdevice' 'pdev' :hardcopy 打印机名
'printencoding' 'penc' 打印输出编码
'printexpr' 'pexpr' :hardcopy 生成打印 PostScript 表达式
'printfont' 'pfn' :hardcopy 打印字体名
'printheader' 'pheader' :hardcopy 打印页页眉格式
'printmbcharset' 'pmbcs' :hardcopy CJK 打印输出字符集
'printmbfont' 'pmbfn' :hardcopy CJK 打印输出字体名
'printoptions' 'popt' :hardcopy 打印输出格式
'prompt' 'prompt' Ex 模式显示提示符
'pumborder' 'pb' 插入模式补全弹出菜单边框风格及装饰效果
'pumheight' 'ph' 插入模式补全弹出菜单最大项目数
'pummaxwidth' 'pmw' 插入模式补全弹出菜单最大宽度
'pumopt' 'pumopt' 插入模式补全弹出菜单额外选项,可统一替代其他设置
'pumwidth' 'pw' 插入模式补全弹出菜单最小宽度
'pythondll' Python 2 动态库名
'pythonhome' Python 2 主目录名
'pythonthreedll' Python 3 动态库名
'pythonthreehome' Python 3 主目录名
'pyxversion' 'pyx' pyx* 命令所用 Python 版本
'quickfixtextfunc' 'qftf' 快速修复窗口文本生成函数
'quoteescape' 'qe' 字符串内引号转义字符
'readonly' 'ro' 本缓冲区只读,禁止写回文件
'redrawtime' 'rdt' 'hlsearch'、 :match 及语法高亮屏幕重绘超时 (毫秒)
'regexpengine' 're' 缺省正则表达式引擎
'relativenumber' 'rnu' 行前显示相对行号
'remap' 允许递归映射
'renderoptions' 'rop' Windows: 文本渲染选项
'report' 改动行数报告阈值
'restorescreen' 'rs' Win32: 退出 Vim 或执行外部命令后恢复原有屏幕内容
'revins' 'ri' 反向插入模式
'rightleft' 'rl' 本窗口从右到左排版
'rightleftcmd' 'rlc' 启用从右到左命令行编辑的命令列表
'rubydll' Ruby 动态库名
'ruler' 'ru' 标尺,在状态行里显示光标行列位置
'rulerformat' 'ruf' 标尺自定义格式
'runtimepath' 'rtp' 运行时文件搜索目录列表
'scroll' 'scr' CTRL-U 和 CTRL-O 单次滚动行数
'scrollbind' 'scb' 窗口绑定滚动
'scrollfocus' 'scf' 滚轮仅作用于鼠标指针所在窗口
'scrolljump' 'sj' 单次滚动最少行数
'scrolloff' 'so' 光标上下预留最少显示行数
'scrolloffpad' 'sop' 光标在文件末尾时仍保持垂直居中
'scrollopt' 'sbo' 'scrollbind' 滚动绑定选项
'sections' 'sect' 小节分隔 nroff 宏
'secure' 安全模式,限制当前目录下 .vimrc 的高危操作
'selection' 'sel' 文本选区工作类型
'selectmode' 'slm' 启用选择模式而非可视模式的场合
'sessionoptions' 'ssop' :mksession 会话保存所用选项
'shell' 'sh' 执行外部命令的外壳程序名
'shellcmdflag' 'shcf' 执行外壳命令所用外壳参数
'shellpipe' 'sp' :make 输出重定向到错误文件的管道字符串
'shellquote' 'shq' 括起外壳命令的字符,不含重定向
'shellredir' 'srr' 过滤命令输出写入临时文件的重定向字符串
'shellslash' 'ssl' 外壳文件名统一使用正斜杠
'shelltemp' 'stmp' 外壳命令使用临时文件而非管道
'shelltype' 'st' Amiga: 外壳交互模式
'shellxescape' 'sxe' 'shellxquote' 为 ( 时需转义字符列表
'shellxquote' 'sxq' 括起外壳命令的字符,支持重定向
'shiftround' 'sr' 缩进对齐到 'shiftwidth' 整数倍
'shiftwidth' 'sw' (自动) 缩进单次步进空格数
'shortmess' 'shm' 提示消息精简标志位列表
'shortname' 'sn' 文件名视为 DOS 8.3 短文件名格式
'showbreak' 'sbr' 回绕行行首提示字符串
'showcmd' 'sc' 显示已输入的 (部分) 命令
'showcmdloc' 'sloc' (部分) 命令显示位置
'showfulltag' 'sft' 补全标签时显示完整标签匹配文本
'showmatch' 'sm' 插入括号时短暂跳转到配对括号
'showmode' 'smd' 状态行显示当前编辑模式提示
'showtabline' 'stal' 是否显示标签页行
'showtabpanel' 'stpl' 是否显示标签页面板
'sidescroll' 'ss' 水平滚动单次最少列数
'sidescrolloff' 'siso' 光标左右预留最少可见列数
'signcolumn' 'scl' 标号列显示规则
'smartcase' 'scs' 智能匹配大小写,仅当模式含大写字母才不忽略大小写
'smartindent' 'si' C 程序智能自动缩进
'smarttab' 'sta' <Tab> 在引导空白处按 'shiftwidth' 缩进
'smoothscroll' 'sms' 'wrap' 开启时按屏幕行平滑滚动
'softtabstop' 'sts' 软制表位占用列宽
'spell' 开启拼写检查
'spellcapcheck' 'spc' 用于句首大写检查的句子结束匹配模式
'spellfile' 'spf' zg 和 zw 保存到的自定义单词列表文件
'spelllang' 'spl' 拼写检查所用语言
'spelloptions' 'spo' 拼写检查选项
'spellsuggest' 'sps' 拼写校正建议生成算法
'splitbelow' 'sb' 水平分割窗口时新窗口置于下方而非上方
'splitkeep' 'spk' 窗口水平分割时原窗口滚动规则
'splitright' 'spr' 垂直分割窗口时新窗口置于当前窗口右侧而非左侧
'startofline' 'sol' 跳转命令自动移动光标到一行首个非空白字符
'statusline' 'stl' 状态行自定义格式
'statuslineopt' 'stlo' status-line 额外控制选项
'suffixes' 'su' 多文件匹配时低优先级后缀列表
'suffixesadd' 'sua' 搜索文件时自动追加后缀列表
'swapfile' 'swf' 本缓冲区启用交换文件
'swapsync' 'sws' 交换文件同步写入磁盘策略
'switchbuf' 'swb' 缓冲区切换窗口行为
'synmaxcol' 'smc' 语法项目解析最大列数
'syntax' 'syn' 本缓冲区语法名
'tabclose' 'tcl' 关闭标签页后聚焦标签页控制
'tabline' 'tal' 控制台标签页行自定义格式
'tabpagemax' 'tpm' -p 和 `:tab all` 最多加载标签页数量
'tabstop' 'ts' 制表位占用列宽
'tagbsearch' 'tbs' 标签文件启用二分法查找
'tagcase' 'tc' 检索标签时大小写匹配规则
'tagfunc' 'tfu' 获取标签匹配列表自定义函数
'taglength' 'tl' 标签有效字符数上限
'tagrelative' 'tr' 标签文件内相对路径基于标签文件
'tags' 'tag' 标签命令所用标签文件名列表
'tagsecure' 'tsc' 禁止通过标签命令打开远程文件
'tagstack' 'tgst' 跳转标签时压入标签历史栈
'tcldll' Tcl 动态库名
'term' 终端名
'termbidi' 'tbidi' 终端支持双向文本
'termencoding' 'tenc' 终端交互所用字符编码
'termguicolors' 'tgc' 终端启用 GUI 真彩颜色
'termresize' 'trz' 窗口大小调整检测机制
'termsync' 'tsy' 开启终端同步重绘模式
'termwinkey' 'twk' 终端窗口 Vim 窗口命令引导键
'termwinscroll' 'twsl' 终端窗口最大回滚行数
'termwinsize' 'tws' 终端窗口尺寸
'termwintype' 'twt' MS-Windows: 终端窗口伪终端类型
'terse' 精简搜索回绕提示消息
'textauto' 'ta' 已废弃,用 'fileformats' 代替
'textmode' 'tx' 已废弃,用 'fileformat' 代替
'textwidth' 'tw' 插入文本最大宽度,更长行会自动断行
'thesaurus' 'tsr' 关键字同义词补全词库文件列表
'thesaurusfunc' 'tsrfu' 同义词补全所用函数
'tildeop' 'top' 波浪命令 "~" 用作操作符
'timeout' 'to' 映射和键码启用超时等待
'timeoutlen' 'tm' 映射和键码超时时长 (毫秒)
'title' Vim 自动设置窗口标题
'titlelen' 标题占用窗口 'columns' 的百分比
'titleold' 退出时恢复的原始窗口标题
'titlestring' Vim 窗口标题自定义格式
'toolbar' 'tb' GUI: 工具栏显示控制选项
'toolbariconsize' 'tbis' GTK 2: 工具栏图标尺寸
'ttimeout' 键码启用超时等待
'ttimeoutlen' 'ttm' 键码超时时长 (毫秒)
'ttybuiltin' 'tbi' 优先使用内置终端功能库,再加载外部终端功能库
'ttyfast' 'tf' 标记高速终端连接
'ttymouse' 'ttym' 终端输出鼠标事件编码类型
'ttyscroll' 'tsl' 终端单次最大滚动行数
'ttytype' 'tty' 'term' 选项别名
'undodir' 'udir' 撤销文件存放目录
'undofile' 'udf' 通过撤销文件,自动保存与恢复撤销信息
'undolevels' 'ul' 最大可撤销更改数量
'undoreload' 'ur' 缓冲区最大行数,超出后重载不可撤销
'updatecount' 'uc' 刷新交换文件所需字符数
'updatetime' 'ut' 刷新交换文件所需毫秒数
'varsofttabstop' 'vsts' 多档位软制表位列宽列表
'vartabstop' 'vts' 多档位制表位列宽列表
'verbose' 'vbs' 输出详细运行日志信息
'verbosefile' 'vfile' 详细运行日志存入文件名
'viewdir' 'vdir' :mkview 视图文件存放目录
'viewoptions' 'vop' :mkview 保存视图信息项
'viminfo' 'vi' 启动和退出时是否读写 .viminfo 文件及具体项目设置
'viminfofile' 'vif' viminfo 自定义文件名
'virtualedit' 've' 虚拟编辑生效模式
'visualbell' 'vb' 使用视觉闪烁代替响铃
'warn' 缓冲区已修改时执行外壳命令给出警告
'weirdinvert' 'wiv' 适配反转显示逻辑异常的老旧终端
'whichwrap' 'ww' 允许指定按键跨行移动光标
'wildchar' 'wc' 命令行通配符补全触发键
'wildcharm' 'wcm' 类似 'wildchar',但用于映射内按键
'wildignore' 'wig' 文件名补全忽略模式
'wildignorecase' 'wic' 文件名补全时忽略大小写
'wildmenu' 'wmnu' 命令行自动补全使用弹出菜单增强模式
'wildmode' 'wim' 'wildchar' 按键补全模式
'wildoptions' 'wop' 命令行补全控制选项
'winaltkeys' 'wak' 窗口系统 ALT 键处理策略
'wincolor' 'wcr' 已废弃,窗口局部普通字符高亮
'window' 'wi' CTRL-F 和 CTRL-B 单次滚动行数
'winfixbuf' 'wfb' 窗口固定当前缓冲区
'winfixheight' 'wfh' 其他窗口增减时保持本窗口高度不变
'winfixwidth' 'wfw' 其他窗口增减时保持本窗口宽度不变
'winheight' 'wh' 当前窗口最少行数
'winhighlight' 'whl' 窗口局部自定义高亮组映射
'winminheight' 'wmh' 任意窗口最少行数
'winminwidth' 'wmw' 任意窗口最少列数
'winptydll' winpty 动态库名
'winwidth' 'wiw' 当前窗口最少列数
'wlseat' 'wse' Wayland 平台所用座位 (seat)
'wlsteal' 'wst' 已废弃,允许 Wayland 窗口抢占焦点
'wltimeoutlen' 'wtm' Wayland 事件轮询超时 (毫秒)
'wrap' 启用长行回绕并在下一行继续
'wrapmargin' 'wm' 距右边界指定字符处开始自动断行
'wrapscan' 'ws' 搜索到达文件尾后折回文件头继续进行
'write' 允许执行文件写入操作
'writeany' 'wa' 无需 "!" 强制即可写入任意文件
'writebackup' 'wb' 覆盖文件时创建临时备份
'writedelay' 'wd' 调试专用: 每个字符屏幕输出延迟 (毫秒)
'xtermcodes' 向 xterm 终端发送终端控制序列请求终端码
CTRL-R 重做最近 N 个已撤销的更改
U U 撤销最近发生更改的行上全部最近的更改
{command} 通过外壳执行外部命令 {command}
K K 用 'keywordprg' (缺省: "man") 查阅光标处关键字
[nr] 至第 [nr] 条错误条目 (缺省为当前错误条目)
:cnext :cn 至下一条错误条目
:cprevious :cp 至上一条错误条目
:clist :cl 列出所有错误条目
:cfile :cf 从文件 'errorfile' 提取错误列表
:cgetbuffer :cgetb 类似 :cbuffer,但不跳转到首条错误
:cgetfile :cg 类似 :cfile,但不跳转到首条错误
:cgetexpr :cgete 类似 :cexpr,但不跳转到首条错误
:caddfile :caddf 通过错误文件补充错误条目到当前快修列表
:caddbuffer :cad 通过错误缓冲区补充错误条目到当前快修列表
:caddexpr :cadde 通过表达式计算结果补充错误条目到当前快修列表
:cbuffer :cb 从缓冲区文本提取错误列表
:cexpr :cex 从表达式计算结果提取错误列表
:cquit :cq 不保存退出,并返回退出码 (给编译器)
:make :make [args] 启动 make,读取并解析错误输出,跳转到首条错误
:grep :gr[ep] [args] 执行 'grepprg' 查找匹配项,并跳转到首个匹配项
CTRL-L 清空并重绘屏幕
CTRL-G CTRL-G 显示当前文件名 (含路径) 和光标位置
ga ga 显示光标下字符的 ASCII 值 (十进、十六进和八进)
g8 g8 utf-8 编码: 以十六进制显示光标下字符的字节序列
g_CTRL-G g CTRL-G 显示光标的列、行和字符位置
CTRL-C CTRL-C 搜索时: 中断搜索
dos-CTRL-Break CTRL-Break MS-Windows: 搜索时: 中断搜索
<Del> <Del> 输入计数时: 删除最后一个数位字符
:version :ve[rsion] 显示版本信息
:mode :mode N 设置屏幕模式为 N (已废弃)
:normal :norm[al][!] {commands}
执行普通模式命令
Q Q 切换到 "Ex" 模式
:redir :redir >{file} 重定向消息到文件 {file}
:silent :silent[!] {command} 静默执行 {command} 命令
:confirm :confirm {command} 退出、写入等询问未保存改动或只读文件
:browse :browse {command} 使用文件选择对话框打开/读入/写入文件
<Esc> 放弃命令行 ('wildchar' 为 <Esc> 则需按两次)
c_CTRL-V CTRL-V {char} 按本义插入 {char}
c_CTRL-V CTRL-V {number} 通过十进制数值形式 (最多 3 位) 输入字符
c_CTRL-K CTRL-K {char1} {char2}
键入二合字母 (参见 Q_di )
c_CTRL-R CTRL-R {register} 插入寄存器内容
c_<Left> <Left>/<Right> 光标左/右移动
c_<S-Left> <S-Left>/<S-Right> 光标左/右移动一个单词
c_CTRL-B CTRL-B/CTRL-E 至行首/行尾
c_<BS> <BS> 删除光标前的字符
c_<Del> <Del> 删除光标下的字符
c_CTRL-W CTRL-W 删除光标前的单词
c_CTRL-U CTRL-U 删除全部字符
c_<Up> <Up>/<Down> 调出以当前命令开头的较旧/较新的命令行
c_<S-Up> <S-Up>/<S-Down> 从命令行历史中调出较旧/较新的命令行
c_CTRL-G CTRL-G 'incsearch' 激活时下一匹配项
c_CTRL-T CTRL-T 'incsearch' 激活时上一匹配项
:history :his[tory] 显示命令行历史
上下文关联的命令行补全:
c_wildchar 'wildchar' (缺省: <Tab>)
补全光标前模式;有多项匹配时,响铃并显示首项;
再次按 'wildchar' 将显示下个匹配项
c_CTRL-D CTRL-D 列出所有匹配光标前模式的匹配项
c_CTRL-A CTRL-A 插入所有匹配光标前模式的匹配项
c_CTRL-L CTRL-L 插入所有匹配光标前模式的匹配项的最长公共前缀
c_CTRL-N CTRL-N 按 'wildchar' 后存在多项匹配时: 至下个匹配项
c_CTRL-P CTRL-P 按 'wildchar' 后存在多项匹配时: 至上个匹配项
{number} 绝对行号
:range . 当前行
:range $ 文件末行
:range % 等价于 1,$ (整个文件)
:range * 等价于 '<,'> (可视选区)
:range 't 位置标记 t 的位置
:range /{pattern}[/] 下一个匹配 {pattern} 的行
:range ?{pattern}[?] 上一个匹配 {pattern} 的行
:range +[num] 在前导行号上加上 [num] (缺省: 1)
:range -[num] 从前导行号里减去 [num] (缺省: 1)
[num] 轮换文件名或第 [num] 号文件名 (仅当期待文件名时)
注: 以下七项按本义键入;并非特殊键!
:<abuf> <abuf> 缓冲区号,用于自动命令 (仅当期待文件名时)
:<afile> <afile> 文件名,用于自动命令 (仅当期待文件名时)
:<amatch> <amatch> 与模式匹配的内容,用于自动命令 (仅当期待文件名时)
:<cword> <cword> 光标所在单词 (仅当期待文件名时)
:<cWORD> <cWORD> 光标所在字串 (仅当期待文件名时) (见 WORD )
:<cfile> <cfile> 光标所在路径名 (仅当期待文件名时)
:<sfile> <sfile> 当前通过 ":source" 执行的文件名 (仅当期待文件名时)
在 "%"、"#"、"<cfile>"、"<sfile>" 或 "<afile>" 后,可附加
::p :p 完整路径 (path)
::h :h 头部 (去除文件名的目录) (head)
::t :t 尾部 (仅使用文件名) (tail)
::r :r 根部 (去除扩展名) (root)
::e :e 扩展名 (extension)
::s :s/{pat}/{repl}/ 用 {repl} 替代 {pat}
[options] 启动 Vim 并编辑空缓冲区
-file vim [options] {file} .. 启动 Vim 并编辑一个或多个文件
-- vim [options] - 从标准输入读入文件
-tag vim [options] -t {tag} 编辑与标签 {tag} 关联的文件
-qf vim [options] -q [fname] 以快速修复模式开始编辑并显示首条错误
常用 Vim 参数 (完整列表见 startup-options )
-gui -g 启动 GUI (也接受其他相关选项)
-+ +[num] 至第 [num] 行 (缺省: 末行)
-+c +{command} 加载文件后执行 {command} 命令
-+/ +/{pat} {file} .. 至 {pat} 首个匹配项
-v -v Vi 模式,以普通模式启动 ex (vi)
-e -e Ex 模式,以 Ex 模式启动 vim (ex)
-R -R 只读模式,隐含 -n (Read-only)
-m -m 禁止修改 (复位 'write' 选项) (modifications)
-d -d 比较模式 diff (diff)
-b -b 二进制模式 (binary)
-l -l lisp 模式 (lisp)
-A -A 阿拉伯语模式 (置位 'arabic') (Arabic)
-F -F 波斯语模式 (置位 'fkmap' 和 'rightleft') (Farsi)
-H -H 希伯来语模式 (置位 'hkmap' 和 'rightleft')(Hebrew)
-V -V 详细模式,显示提示信息 (Verbose)
-C -C 兼容模式,置位 'compatible' 选项 (Compatible)
-N -N 非兼容模式,复位 'compatible' 选项 (Nocompatible)
-r -r 列出交换文件
-r -r {file} .. 恢复中断的编辑会话 (recover)
-n -n 不创建交换文件 (noswap)
-o -o [num] 打开 [num] 个窗口 (缺省: 每个文件一个窗口) (open)
-f -f GUI: 前台进程,不分叉 (fork) 新进程 (foreground)
Amiga: 打开窗口时不重启原有 Vim 进程 (如用于 mail)
-s -s {scriptin} 首先从 {scriptin} 脚本文件读取命令 (script)
-w -w {scriptout} 将所有输入字符追加到 {scriptout} 文件 (write)
-W -W {scriptout} 将所有输入字符写入或覆盖 {scriptout} 文件 (Write)
-T -T {terminal} 设置终端名 (Terminal)
-d -d {device} Amiga: 打开 {device} 作为控制台使用 (device)
-u -u {vimrc} 从指定 {vimrc} 读取初始化设置,替代其他文件 (user)
-U -U {gvimrc} 同上,但用于 GUI 初始化设置 (User)
-i -i {viminfo} 从文件 {viminfo} 读取信息文件,替代其他文件 (info)
--- -- 选项结束,后续参数均为文件名
--help --help 显示参数列表并退出
--version --version 显示版本信息并退出
-- - 从标准输入读取文件
{file} 编辑 {file}
:edit :e[dit][!] 重新载入当前文件
:enew :ene[w][!] 编辑无名新缓冲区
:find :fin[d][!] {file} 在 'path' 中查找 {file} 文件并编辑
CTRL-^ N CTRL-^ 编辑轮换文件或第 N 个缓冲区 (同 ":e #N")
gf gf 或 ]f 编辑光标下文件名对应的文件 (goto file)
:pwd :pwd 显示当前目录名
:cd :cd [path] 切换当前目录为 [path]
:cd- :cd - 返回之前的当前目录
:file :f[ile] 显示当前文件名及光标位置
:file :f[ile] {name} 将当前文件名设为 {name}
:files :files 显示所有缓冲区中的文件名
{file} 写入 {file} 并编辑下个文件,! 强制覆盖已有文件
:wN :wN[ext][!] [file] 保存文件并编辑上个文件
使用当前窗口 新建窗口
:argument :argu[ment] N :sar[gument] N 至第 N 个文件
:next :n[ext] :sn[ext] 至下一个文件
:next_f :n[ext] {arglist} :sn[ext] {arglist} 更换参数列表,至首文件
:Next :N[ext] :sN[ext] 至上一个文件
:first :fir[st] :sfir[st] 至第一个文件
:last :la[st] :sla[st] 至最后一个文件
[range]w[rite][!] 保存当前文件
:w_f :[range]w[rite] {file} 另存为 {file} 文件,如果已存在则失败
:w_f :[range]w[rite]! {file} 另存为 {file} 文件。强制覆盖已有文件
:w_a :[range]w[rite][!] >> 追加写入当前文件
:w_a :[range]w[rite][!] >> {file} 追加写入 {file} 文件
:w_c :[range]w[rite] !{cmd} 将 [range] 行作为标准输入执行 {cmd}
:up :[range]up[date][!] 仅当有修改时才保存当前文件
:wall :wa[ll][!] 保存所有已修改的缓冲区
:q :q[uit] 退出无修改缓冲区。无其他非帮助缓冲区时退出 Vim
:q :q[uit]! 退出缓冲区,丢弃修改。无非帮助缓冲区时退出 Vim
:qa :qa[ll] 退出 Vim,有已修改缓冲区则失败
:qa :qa[ll]! 退出 Vim,丢弃所有修改
:cq :cq 不保存退出,并返回退出码
:wq :wq[!] 保存当前文件并退出
:wq :wq[!] {file} 另存为 {file} 文件并退出
:xit :x[it][!] [file] 类似 ":wq",但仅当有修改时才保存
ZZ ZZ 同 ":x"
ZQ ZQ 同 ":q!"
:xall :xa[ll][!] 或 :wqall[!]
保存所有已修改的缓冲区并退出
:stop :st[op][!] 挂起 Vim 或启动新外壳。置位 'aw' 且无 ! 则保存
CTRL-Z CTRL-Z 同 ":stop"
[file] 从 [file] 文件读取 viminfo 信息
:rviminfo :rv[iminfo]! [file] 同上,但覆盖已有信息
:wviminfo :wv[iminfo] [file] 将 viminfo 信息添加到 [file] 文件
:wviminfo :wv[iminfo]! [file] 将 viminfo 信息写入或覆盖 [file] 文件
modeline 文件编辑时自动设置选项
modeline vim:{set-arg}: .. 出现在文件首尾若干行 (见 'ml'),会将
{set-arg} 作为参数传递给 :set 命令
autocommand 在特定事件发生时自动执行命令。
:autocmd :au 列出所有自动命令
:autocmd :au {event} 列出 {event} 事件的所有自动命令
:autocmd :au {event} {pat} 列出 {event} 中匹配 {pat} 的自动命令
:autocmd :au {event} {pat} {cmd} 添加 {event} 中匹配 {pat} 的自动命令
:autocmd :au! 清空所有自动命令
:autocmd :au! {event} 删除 {event} 事件的所有自动命令
:autocmd :au! * {pat} 删除匹配 {pat} 的所有自动命令
:autocmd :au! {event} {pat} 删除 {event} 中匹配 {pat} 的自动命令
:autocmd :au! {event} {pat} {cmd}
删除 {event} 中匹配 {pat} 的所有自动命令,并添加新命令
CTRL-W s 或 :split 将窗口分割为两部分 (split)
:split_f :split {file} 分割窗口,并在其中一个窗口编辑 {file}
:vsplit :vsplit {file} 同上,但使用垂直分割
:vertical :vertical {cmd} 执行后续命令 {cmd} 时会使用垂直分割
:sfind :sf[ind] {file} 分割窗口并编辑 'path' 中找到的 {file}
:terminal :terminal {cmd} 打开终端窗口
CTRL-W_] CTRL-W ] 分割窗口并跳转到光标下的标签
CTRL-W_f CTRL-W f 分割窗口并编辑光标下的文件名 (file)
CTRL-W_^ CTRL-W ^ 分割窗口并编辑轮换文件
CTRL-W_n CTRL-W n 或 :new 新建空窗口 (new)
CTRL-W_q CTRL-W q 或 :q[uit] 退出编辑并关闭窗口 (quit)
CTRL-W_c CTRL-W c 或 :clo[se] 隐藏当前缓冲区并关闭窗口 (close)
CTRL-W_o CTRL-W o 或 :on[ly] 仅保留当前窗口可见 (only)
CTRL-W_j CTRL-W j 至下方窗口
CTRL-W_k CTRL-W k 至上方窗口
CTRL-W_CTRL-W CTRL-W CTRL-W 至下方窗口 (循环切换) (Wrap)
CTRL-W_W CTRL-W W 至上方窗口 (循环切换) (wrap)
CTRL-W_t CTRL-W t 至顶端窗口 (top)
CTRL-W_b CTRL-W b 至底端窗口 (bottom)
CTRL-W_p CTRL-W p 至上次访问的窗口 (previous)
CTRL-W_r CTRL-W r 向下旋转窗口 (rotate)
CTRL-W_R CTRL-W R 向上旋转窗口 (Rotate)
CTRL-W_x CTRL-W x 将当前窗口与下一个窗口对调 (eXchange)
CTRL-W_= CTRL-W = 使所有窗口等高等宽
CTRL-W_- CTRL-W - 减少当前窗口高度
CTRL-W_+ CTRL-W + 增加当前窗口高度
CTRL-W__ CTRL-W _ 设置当前窗口高度 (缺省: 尽可能高)
CTRL-W_< CTRL-W < 减少当前窗口宽度
CTRL-W_> CTRL-W > 增加当前窗口宽度
CTRL-W_bar CTRL-W | 设置当前窗口宽度 (缺省: 尽可能宽)
{fname} 将文件名 {fname} 加入缓冲区列表
:bunload :bunload[!] [N] 从内存卸载缓冲区 [N]
:bdelete :bdelete[!] [N] 卸载缓冲区 [N] 并从缓冲区列表中删除
使用当前窗口 新建窗口
:buffer :[N]buffer [N] :[N]sbuffer [N] 至第 N 个参数/缓冲区
:bnext :[N]bnext [N] :[N]sbnext [N] 往下第 N 个参数/缓冲区
:bNext :[N]bNext [N] :[N]sbNext [N] 往上第 N 个参数/缓冲区
:bprevious :[N]bprevious [N] :[N]sbprevious [N] 往上第 N 个参数/缓冲区
:bfirst :bfirst :sbfirst 至第一个参数/缓冲区
:blast :blast :sblast 至最后一个参数/缓冲区
:bmodified :[N]bmod [N] :[N]sbmod [N] 至第 N 个修改过的缓冲区
{group-name} {keyword} ..
添加语法关键字项目
:syn-match :syntax match {group-name} {pattern} ...
添加语法匹配项目
:syn-region :syntax region {group-name} {pattern} ...
添加语法区域项目
:syn-sync :syntax sync [ccomment | lines {N} | ...]
指定语法高亮同步方式
:syntax :syntax [list] 列出当前语法项目
:syn-clear :syntax clear 清除所有语法信息
:highlight :highlight clear 清除所有高亮信息
:highlight :highlight {group-name} {key}={arg} ..
设置语法组 {group-name} 的高亮方式
:filetype :filetype on 开启文件类型检测,不启用语法高亮
:filetype :filetype plugin indent on
开启文件类型检测、并启用自动缩进及设置
{fname} .. 启动 GUI,然后编辑 {fname} ..
:menu :menu 列出所有菜单
:menu :menu {mpath} 列出 {mpath} 开头的菜单
:menu :menu {mpath} {rhs} 添加菜单项 {mpath},执行命令为 {rhs}
:menu :menu {pri} {mpath} {rhs}
同上,并指定优先级 {pri}
:menu :menu ToolBar.{name} {rhs}
添加工具栏项 {name},执行命令为 {rhs}
:tmenu :tmenu {mpath} {text} 为菜单项 {mpath} 添加工具提示
:unmenu :unmenu {mpath} 删除菜单项 {mpath}
{motion} 操作符: 手动创建折叠 (fold)
:fold :{range}fold 为 {range} 范围内行创建折叠
zd zd 删除光标所在的单层折叠 (delete)
zD zD 递归删除光标所在折叠 (Delete)
zo zo 展开光标所在折叠 (open)
zO zO 递归展开光标所在折叠 (Open)
zc zc 关闭光标所在折叠一层 (close)
zC zC 递归关闭光标所在折叠 (Close)
zm zm 折起更多: 减少 'foldlevel' (more)
zM zM 关闭所有折叠: 将 'foldlevel' 设为 0
zr zr 减少折叠: 增加 'foldlevel' (reduce)
zR zR 展开所有折叠: 将 'foldlevel' 设为最大
zn zn 不折叠: 复位 'foldenable' (none)
zN zN 正常折叠: 置位 'foldenable' (Normal)
zi zi 翻转 'foldenable' (invert)
vim:tw=78:ts=8:noet:ft=help:norl: