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 - 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 - 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>
向前查找第 N 次出现 {pattern}
的地方
? N ?{pattern}
[?[offset]
]<CR>
向后查找第 N 次出现 {pattern}
的地方
/<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}
至 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]
列出匹配的标签并选择其中一个跳转
: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 行 (缺省: 1/2 窗口) (Downwards)
CTRL-F N CTRL-F
窗口下滚 N 页 (Forwards)
CTRL-Y N CTRL-Y
窗口上滚 N 行 (缺省: 1)
CTRL-U N CTRL-U
窗口上滚 N 行 (缺省: 1/2 窗口) (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-left/right 左/右 移动一个单词
i_<S-Up> shift-up/down 后/前 移动一个满屏
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}
过滤动作跨越的多行
!! N !!{command}
<CR>
用命令 {command}
过滤 N 行
v_! {visual}
!{command}
<CR>
用命令 {command}
过滤高亮的行
:range! :[range]
! {command}
<CR>
用命令 {command}
过滤范围 [range]
覆盖的多行
= N ={motion}
用 'equalprg' 过滤动作跨越的多行
== N == 用 'equalprg' 过滤 N 行
v_= {visual}
=
用 'equalprg' 过滤高亮的多行
:s :[range]
s[ubstitute]/{pattern}
/{string}
/[g][c]
用 {string}
替代范围 [range]
覆盖的多行中的
{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: 用平滑反锯齿的字体
'autochdir' 'acd' 根据当前窗口的文件切换目录
'autoshelldir' 'asd' 改变目录为外壳的当前目录
'arabic' 'arab' 使用阿拉伯语为缺省的第二语言
'arabicshape' 'arshape' 阿拉伯语的字型重整
'autoindent' 'ai' 根据上一行决定新行的缩进
'autoread' 'ar' 有 Vim 之外的改动时自动重读文件
'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' 完成字符编码转换的表达式
'cindent' 'cin' 实现 C 程序的缩进
'cinkeys' 'cink' 设置 'cindent' 时启动缩进的键
'cinoptions' 'cino' 设置 'cindent' 时如何缩进
'cinwords' 'cinw' 'si' 和 'cin' 在这些词后加入额外的缩进
'cinscopedecls' 'cinsd' 'cino-g' 识别的单词
'clipboard' 'cb' 使用剪贴板作为无名的寄存器
'cmdheight' 'ch' 命令行使用的行数
'cmdwinheight' 'cwh' 命令行窗口的高度
'colorcolumn' 'cc' 高亮指定列
'columns' 'co' 显示屏幕的列数
'comments' 'com' 可以开始注释行的模式
'commentstring' 'cms' 注释的样板;用于折叠的标志
'compatible' 'cp' 尽可能做到与 Vi 兼容
'complete' 'cpt' 指定插入模式的自动补全如何工作
'completefunc' 'cfu' 插入模式补全使用的函数
'completeopt' 'cot' 插入模式补全使用的选项
'completepopup' 'cpp' 插入模式补全 info 弹出使用的选项
'completeslash' 'csl' 类似于 'shellslash',但用于补全
'concealcursor' 'cocu' 是否隐藏光标所在行的可隐藏文本
'conceallevel' 'cole' 是否显示可隐藏文本
'confirm' 'cf' 询问如何处理未保存/只读的文件
'conskey' 'consk' 直接从控制台读入键击 (只限于 MS-DOS)
'copyindent' 'ci' 使得 'autoindent' 使用已有的缩进结构
'cpoptions' 'cpo' 设定 Vi-兼容的行为
'cryptmethod' 'cm' 文件写入时所用的加密方法
'cscopepathcomp' 'cspc' 显示路径多少部分
'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' 当前窗口使用比较模式
'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' 插入模式下识别功能键
'eventignore' 'ei' 忽略的自动命令事件
'expandtab' 'et' 键入 <Tab>
时使用空格
'exrc' 'ex' 在当前目录里读入 .vimrc 和 .exrc
'fileencoding' 'fenc' 多字节文本的文件编码
'fileencodings' 'fencs' 参与自动检测的字符编码
'fileformat' 'ff' 文件输入输出使用的格式
'fileformats' 'ffs' 参与自动检测的 'fileformat' 的格式
'fileignorecase' 'fic' 使用文件名时忽略大小写
'filetype' 'ft' 自动命令使用的文件类型
'fillchars' 'fcs' 显示特殊项目所使用的字符
'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' 双倍宽度字符的字体名列表
'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' 开始编辑命令行时使用 IM
'imdisable' 'imd' 任何模式下不使用 IM
'iminsert' 'imi' 插入模式下使用 :lmap 或 IM
'imsearch' 'ims' 输入搜索模式时使用 :lmap 或 IM
'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' 连接命令在句号之后加两个空格
'key' 加密密钥
'keymap' 'kmp' 键盘映射名
'keymodel' 'km' 允许用键击开始/停止选择
'keyprotocol' 'kpc' 为何种终端使用何种键盘协议
'keywordprg' 'kp' "K" 命令所使用的程序
'langmap' 'lmap' 其他语言模式用的字母表字符
'langmenu' 'lm' 菜单使用的语言
'langnoremap' 'lnr' 已映射字符不应用 'langmap'
'langremap' 'lrm' 映射字符适用 'langmap'
'laststatus' 'ls' 当最近的窗口有状态行时提示
'lazyredraw' 'lz' 执行宏时不重画
'linebreak' 'lbr' 在空白处回绕长行
'lines' 显示屏幕的行数
'linespace' 'lsp' 字符之间的像素行数
'lisp' 自动 lisp 缩进
'lispoptions' 'lop' 修改 Lisp 缩进的方式
'lispwords' 'lw' 改变 lisp 缩进方式的单词
'list' 显示 <Tab>
和 <EOL>
'listchars' 'lcs' list 模式下显示用的字符
'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' 所有缓冲区可用的最大内存 (以千字节计)
'menuitems' 'mis' 菜单可用的最大项目数
'mkspellmem' 'msm' 在 :mkspell 压缩树前可用的内存
'modeline' 'ml' 在文件开头或结尾识别模式行
'modelineexpr' 'mle' 允许模式行上设置表达式选项
'modelines' 'mls' 模式行的检查行数
'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 用于 GC 的动态库名
'nrformats' 'nf' CTRL-A
命令识别的数字格式
'number' 'nu' 行前显示行号
'numberwidth' 'nuw' 行号使用的列数
'omnifunc' 'ofu' 文件类型特定补全使用的函数
'opendevice' 'odev' MS-Windows 上允许读/写设备
'operatorfunc' 'opfunc' g@ 操作符调用的函数
'osfiletype' 'oft' 不再支持
'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 模式打开提示
'pumheight' 'ph' 弹出菜单的最大高度
'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' Window 上文本渲染选项
'report' 报告行改变的行数下限
'restorescreen' 'rs' Win32: 退出时恢复屏幕
'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' 光标上下的最少行数
'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' 类似于 'shellquote',但包括重定向
'shiftround' 'sr' 缩进列数对齐到 shiftwidth 的整数倍
'shiftwidth' 'sw' (自动) 缩进使用的步进单位,以空白数目计
'shortmess' 'shm' 缩短消息长度的标志位列表
'shortname' 'sn' 文件名假定为 8.3 字符
'showbreak' 'sbr' 用于提示回绕行开始的字符串
'showcmd' 'sc' 在某处显示 (部分) 命令
'showcmdloc' 'sloc' 显示 (部分) 命令的位置
'showfulltag' 'sft' 自动补全标签时显示完整的标签匹配模式
'showmatch' 'sm' 插入括号时短暂跳转到匹配的括号
'showmode' 'smd' 在状态行上显示当前模式的消息
'showtabline' 'stal' 是否显示标签页行
'sidescroll' 'ss' 横向滚动的最少列数
'sidescrolloff' 'siso' 在光标左右最少出现的列数
'signcolumn' 'scl' 何时显示标号列
'smartcase' 'scs' 模式中有大写字母时不忽略大小写
'smartindent' 'si' C 程序智能自动缩进
'smarttab' 'sta' 插入 <Tab>
时使用 'shiftwidth'
'smoothscroll' 'sms' 置位 'wrap' 时滚动屏幕行
'softtabstop' 'sts' 编辑时 <Tab>
使用的空格数
'spell' 打开拼写检查
'spellcapcheck' 'spc' 定位句子尾部的模式
'spellfile' 'spf' zg 和 zw 保存单词的文件
'spelllang' 'spl' 拼写检查使用的语言
'spelloptions' 'spo' 用于拼写检查的选项
'spellsuggest' 'sps' 提供拼写校正建议的方法
'splitbelow' 'sb' 分割窗口时新窗口在当前窗口之下
'splitkeep' 'spk' 决定窗口分割时的滚动行为
'splitright' 'spr' 新窗口在当前窗口之右
'startofline' 'sol' 命令移动光标到行的首个非空白处
'statusline' 'stl' 状态行的定制格式
'suffixes' 'su' 多个匹配所忽略的后缀
'suffixesadd' 'sua' 搜索文件时附加的后缀
'swapfile' 'swf' 缓冲区是否使用交换文件
'swapsync' 'sws' 和交换文件同步的方式
'switchbuf' 'swb' 设置切换到别的缓冲区时的行为
'synmaxcol' 'smc' 寻找语法项目的最大列数
'syntax' 'syn' 读入当前缓冲区的语法
'tabline' 'tal' 终端标签页行的定制格式
'tabpagemax' 'tpm' -p 和 "tab all" 的最大标签页数
'tabstop' 'ts' <Tab>
在文件里使用的空格数
'tagbsearch' 'tbs' 标签文件里用二分法查找
'tagcase' 'tc' 标签文件查找时如何处理大小写
'tagfunc' 'tfu' 获取标签匹配列表所用的函数
'taglength' 'tl' 标签里的有效字符数
'tagrelative' 'tr' 标签文件里的文件名是相对路径
'tags' 'tag' 标签命令使用的文件名列表
'tagstack' 'tgst' 把标签推入标签栈
'tcldll' Tcl 动态库名
'term' 终端名
'termbidi' 'tbidi' 终端支持双向文本
'termencoding' 'tenc' 终端使用的编码方式
'termguicolors' 'tgc' 终端使用 GUI 颜色
'termwinkey' 'twk' 终端上引导 Vim 命令的键
'termwinscroll' 'twsl' 终端窗口中回滚的最大行数
'termwinsize' 'tws' 终端窗口的大小
'termwintype' 'twt' MS-Windows: 终端窗口所用的 pty 类型
'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' 在外部 termcap 之前先用内建的 termcap
'ttyfast' 'tf' 指示一个快速的终端连接
'ttymouse' 'ttym' 鼠标产生代码的类型
'ttyscroll' 'tsl' 滚动的最大行数
'ttytype' 'tty' 'term' 的别名
'undodir' 'udir' 保存撤销文件的位置
'undofile' 'udf' 把撤销信息写入一个文件里
'undolevels' 'ul' 最多可以撤销的改变个数
'undoreload' 'ur' 保存缓冲区重载撤销的最大行数
'updatecount' 'uc' 刷新交换文件所需的字符数
'updatetime' 'ut' 刷新交换文件所需的毫秒数
'varsofttabstop' 'vsts' 键入 <Tab>
时生成空格数的列表
'vartabstop' 'vts' 用于 <Tab>
对应空格数的列表
'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
滚动的行数
'winheight' 'wh' 当前窗口的最少行数
'winfixheight' 'wfh' 打开/关闭窗口时保持窗口高度
'winfixwidth' 'wfw' 打开/关闭窗口时保持窗口宽度
'winminheight' 'wmh' 任何窗口的最少行数
'winminwidth' 'wmw' 任何窗口的最少列数
'winptydll' winpty 动态库名
'winwidth' 'wiw' 当前窗口的最少列数
'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 从错误文件加入错误到当前快速修复列表
:caddexpr :cad 从表达式计算结果加入错误到当前快速修复列表
: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 [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 不创建交换文件
-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}
作为控制台使用
-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}
并编辑后一个文件,除非文件 {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}
执行命令 {cmd}
,以 [range]
限定的行作
为标准输入
: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]
向文件 [file]
中加入 viminfo 信息
:wviminfo :wv[iminfo]! [file]
向文件 [file]
中写入 viminfo 信息
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}
.. 同上,并编辑 {fname}
..
:menu :menu 列出所有菜单
:menu :menu {mpath}
列出 {mpath}
下的所有菜单
:menu :menu {mpath}
{rhs}
把 {rhs}
加入菜单 {mpath}
:menu :menu {pri}
{mpath}
{rhs}
同上,并带有优先权 {pri}
:menu :menu ToolBar.{name}
{rhs}
把 {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: