vim命令大全.docx
《vim命令大全.docx》由会员分享,可在线阅读,更多相关《vim命令大全.docx(59页珍藏版)》请在冰点文库上搜索。
![vim命令大全.docx](https://file1.bingdoc.com/fileroot1/2023-5/6/ec124b90-118f-487a-9b4d-fc83a916c6c5/ec124b90-118f-487a-9b4d-fc83a916c6c51.gif)
vim命令大全
INDEX
*index.txt*ForVimversion7.3.最近更新:
2011年5月
VIM参考手册byBramMoolenaar
译者:
Willis
*index*
本文件包含各个模式下的所有命令的一个列表。
包含它们的标签和简单说明。
列表以
ASCII值排序。
提示:
要找特定功能,使用搜索命令。
例如,要找寻如何删除,使用:
"/删除"。
1.插入模式|insert-index|
2.普通模式|normal-index|
2.1.文本对象|objects|
2.2.窗口命令|CTRL-W|
2.3.方括号命令|[|
2.4.'g'开头的命令|g|
2.5.'z'开头的命令|z|
3.可视模式|visual-index|
4.命令行编辑|ex-edit-index|
5.EX命令|ex-cmd-index|
选项总览可见help.txt|option-list|。
内建函数总览可见|functions|。
Vim变量的列表可见|vim-variable|。
帮助项目的完整列表可见|help-tags|。
1.插入模式*insert-index*
标签字符插入模式动作
|i_CTRL-@|CTRL-@插入最近插入的文本并停止插入
|i_CTRL-A|CTRL-A插入最近插入的文本
CTRL-B不用|i_CTRL-B-gone|
|i_CTRL-C|CTRL-C退出插入模式,不检查缩写,除非置位了
'insertmode'。
|i_CTRL-D|CTRL-D在当前行删除一个shiftwidth的缩进
|i_CTRL-E|CTRL-E插入光标下方的字符
CTRL-F不用(但缺省是'cinkeys'中的一项,用以重新缩
进本行)
|i_CTRL-G_j|CTRL-GCTRL-J往下一行,到插入开始的列
|i_CTRL-G_j|CTRL-Gj往下一行,到插入开始的列
|i_CTRL-G_j|CTRL-G往下一行,到插入开始的列
|i_CTRL-G_k|CTRL-GCTRL-K往上一行,到插入开始的列
|i_CTRL-G_k|CTRL-Gk往上一行,到插入开始的列
|i_CTRL-G_k|CTRL-G往上一行,到插入开始的列
|i_CTRL-G_u|CTRL-Gu开始新的不可撤消的编辑
|i_|删除光标前的字符
|i_digraph|{char1}{char2}
输入二合字母(只有打开了'digraph'选项才有效)
|i_CTRL-H|CTRL-H等同于
|i_|插入字符
|i_CTRL-I|CTRL-I等同于
|i_|等同于
|i_CTRL-J|CTRL-J等同于
|i_CTRL-K|CTRL-K{char1}{char2}
输入二合字母
|i_CTRL-L|CTRL-L'insertmode'打开时:
离开插入模式
|i_|开始新行
|i_CTRL-M|CTRL-M等同于
|i_CTRL-N|CTRL-N查找光标前面的关键字的下一个匹配
|i_CTRL-O|CTRL-O执行单个命令然后回到插入模式
|i_CTRL-P|CTRL-P查找光标前面的关键字的前一个匹配
|i_CTRL-Q|CTRL-Q等同于CTRL-V,除非它用于终端控制流
|i_CTRL-R|CTRL-R{0-9a-z"%#*:
=}
插入寄存器内容
|i_CTRL-R_CTRL-R|CTRL-RCTRL-R{0-9a-z"%#*:
=}
按本义插入寄存器内容
|i_CTRL-R_CTRL-O|CTRL-RCTRL-O{0-9a-z"%#*:
=}
按本义插入寄存器内容,而且不自动缩进
|i_CTRL-R_CTRL-P|CTRL-RCTRL-P{0-9a-z"%#*:
=}
按本义插入寄存器内容,而且修正缩进
CTRL-S(用于终端控制流)
|i_CTRL-T|CTRL-T在当前行插入一个shiftwidth的缩进
|i_CTRL-U|CTRL-U删除当前行的所有输入字符
|i_CTRL-V|CTRL-V{char}按本义插入下一个非数字字符
|i_CTRL-V_digit|CTRL-V{number}插入三位十进制数字代表的单个字节。
|i_CTRL-W|CTRL-W删除光标前的单词
|i_CTRL-X|CTRL-X{mode}进入CTRL-X子模式,见|i_CTRL-X_index|
|i_CTRL-Y|CTRL-Y插入光标上方的字符
|i_CTRL-Z|CTRL-Z'insertmode'打开时:
暂停Vim
|i_|结束插入模式(除非打开了'insertmode')
|i_CTRL-[|CTRL-[等同于
|i_CTRL-\_CTRL-N|CTRL-\CTRL-N进入普通模式
|i_CTRL-\_CTRL-G|CTRL-\CTRL-G进入'insertmode'指定的模式
CTRL-\a-z保留给扩展用
CTRL-\others不用
|i_CTRL-]|CTRL-]切换缩写
|i_CTRL-^|CTRL-^切换|:
lmap|映射的使用
|i_CTRL-_|CTRL-_'allowrevins'打开时:
改变语言
(希伯来语,波斯语等){仅当编译时加入
|+rightleft|特性才有效}
to'~'不用,除了CTRL-D之前的'0'和'^'
|i_0_CTRL-D|0CTRL-D删除当前行的所有缩进
|i_^_CTRL-D|^CTRL-D删除当前行的所有缩进,在下一行恢复删除的缩进
|i_|删除光标所在的字符
Meta字符(0x80到0xff,128到255)
不用
|i_|光标左移一个字符
|i_|光标左移一个单词
|i_|光标左移一个单词
|i_|光标右移一个字符
|i_|光标右移一个单词
|i_|光标右移一个单词
|i_|光标上移一行
|i_|等同于
|i_|光标下移一行
|i_|等同于
|i_|光标移到行首
|i_|光标移到文件首
|i_|光标移到行尾后面
|i_|光标移到文件尾后面
|i_|满屏上滚
|i_|满屏下滚
|i_|等同于
|i_|停止插入模式显示帮助窗口
|i_|切换插入/替换模式
|i_|光标移到鼠标点击处
|i_|窗口向下滚动三行
|i_|窗口向下滚动完整一页
|i_|窗口向上滚动三行
|i_|窗口向上滚动完整一页
|i_|窗口向左滚动六列
|i_|窗口向左滚动完整一页
|i_|窗口向右滚动六列
|i_|窗口向右滚动完整一页
CTRL-X子模式的命令*i_CTRL-X_index*
|i_CTRL-X_CTRL-D|CTRL-XCTRL-D补全定义过的标识符
|i_CTRL-X_CTRL-E|CTRL-XCTRL-E上滚
|i_CTRL-X_CTRL-F|CTRL-XCTRL-F补全文件名
|i_CTRL-X_CTRL-I|CTRL-XCTRL-I补全标识符
|i_CTRL-X_CTRL-K|CTRL-XCTRL-K从字典补全标识符
|i_CTRL-X_CTRL-L|CTRL-XCTRL-L补全完整的行
|i_CTRL-X_CTRL-N|CTRL-XCTRL-N下一个补全
|i_CTRL-X_CTRL-O|CTRL-XCTRL-O全能(omni)补全
|i_CTRL-X_CTRL-P|CTRL-XCTRL-P上一个补全
|i_CTRL-X_CTRL-S|CTRL-XCTRL-S拼写建议
|i_CTRL-X_CTRL-T|CTRL-XCTRL-T从同义词词典补全标识符
|i_CTRL-X_CTRL-U|CTRL-XCTRL-U用'completefunc'补全
|i_CTRL-X_CTRL-V|CTRL-XCTRL-V如同:
命令行那样补全
|i_CTRL-X_CTRL-Y|CTRL-XCTRL-Y下滚
|i_CTRL-X_CTRL-]|CTRL-XCTRL-]补全标签
|i_CTRL-X_s|CTRL-Xs拼写建议
{仅当编译时加入|+insert_expand|特性才有效}
2.普通模式*normal-index*
CHAR任何非空白字符
WORD非空白字符的序列(字串)
N命令前输入的数值
{motion}光标移动命令
Nmove{motion}移动经过的文本
SECTION可能以'}'而不是'{'开始的小节
备注:
1=光标移动命令;2=可以撤消/重做
标签字符备注普通模式的动作
CTRL-@不用
|CTRL-A|CTRL-A2把N加到光标所在/之后的数值上
|CTRL-B|CTRL-B1反向(Back)滚动N屏
|CTRL-C|CTRL-C终止当前的(搜索)命令
|CTRL-D|CTRL-D向下(Down)滚动N行(缺省:
半屏)
|CTRL-E|CTRL-E向上滚动N行(附加(Extra)N行)
|CTRL-F|CTRL-F1向前(Forward)滚动N屏
|CTRL-G|CTRL-G显示当前文件名和位置
||1等同于"h"
|CTRL-H|CTRL-H1等同于"h"
||1跳转到跳转表里第N个较新的项目
|CTRL-I|CTRL-I1等同于
||1等同于"j"
|CTRL-J|CTRL-J1等同于"j"
CTRL-K不用
|CTRL-L|CTRL-L重画屏幕
||1光标移到N行下面的第一个CHAR
|CTRL-M|CTRL-M1等同于
|CTRL-N|CTRL-N1等同于"j"
|CTRL-O|CTRL-O1跳转到跳转表里第N个较旧的项目
|CTRL-P|CTRL-P1等同于"k"
CTRL-Q(用于终端控制流)
|CTRL-R|CTRL-R2重做'u'撤消的改变
CTRL-S(用于终端控制流)
|CTRL-T|CTRL-T跳转到标签列表的第N个较老的标签(Tag)
|CTRL-U|CTRL-U上滚(Upwards)N行(缺省:
半屏)
|CTRL-V|CTRL-V开始面向列块的可视(Visual)模式
|CTRL-W|CTRL-W{char}窗口命令,见|CTRL-W|
|CTRL-X|CTRL-X2从光标所在/之后的数值上减去N
|CTRL-Y|CTRL-Y下滚N行
|CTRL-Z|CTRL-Z暂停程序(或者启动新的外壳)
CTRL-[不用
|CTRL-\_CTRL-N|CTRL-\CTRL-N进入普通(Normal)模式(空动作)
|CTRL-\_CTRL-G|CTRL-\CTRL-G进入'insertmode'指定的模式
CTRL-\a-z保留作扩展用
CTRL-\其它不用
|CTRL-]|CTRL-]:
ta到光标所在的标识符
|CTRL-^|CTRL-^编辑第N个轮换文件(等价于":
e#N")
CTRL-_不用
||1等同于"l"
|!
|!
{motion}{filter}
2通过{filter}命令过滤Nmove文本
|!
!
|!
!
{filter}2通过{filter}命令过滤N行
|quote|"{a-zA-Z0-9.%#:
-"}指定下次删除、抽出或放置使用的寄存器
{a-zA-Z0-9.%#:
-"}(大写用于添加)
({.%#:
}只能用于放置)
|#|#1反向搜索第N次出现的光标所在的标识符
|$|$1光标移动到往下第N行的行尾之后
|%|%1查找本行下一个(花/方)括号,并转到其匹配的
括号上,或者转到匹配的注释配对上,或者转到
匹配的预处理命令上。
|N%|{count}%1转到文件的百分之N的位置上
|&|&2重复上次:
s
|'|'{a-zA-Z0-9}1光标移动到位置标记{a-zA-Z0-9}所在行的第一
个CHAR上
|''|''1光标移动到最近一次跳转之前所在行的第一个
CHAR上
|'(|'(1光标移动到当前句子的首部所在行的第一个CHAR
上
|')|')1光标移动到当前句子的尾部所在行的第一个CHAR
上
|'<|'<1光标移动到当前缓冲区高亮区开始/曾经开始的行
的第一个CHAR上。
|'>|'>1光标移动到当前缓冲区高亮区结束/曾经结束的行
的第一个CHAR上。
|'[|'[1光标移动到当前缓冲区最近操作/放置的文本的首
部所在行的第一个CHAR上
|']|']1光标移动到当前缓冲区最近操作/放置的文本的尾
部所在行的第一个CHAR上
|'{|'{1光标移动到当前段落的首部所在行的第一个CHAR
上
|'}|'}1光标移动到当前段落的尾部所在行的第一个CHAR
上
|(|(1光标回退N个句子
|)|)1光标前进N个句子
|star|*1正向搜索第N次出现的光标所在的标识符
|+|+1等同于
|,|,1反方向重复最近的f、t、F或TN次
|-|-1光标移动到上方N行的第一个CHAR上
|.|.2重复最近的改变,其计数被N取代
|/|/{pattern}1正向搜索第N次出现的{pattern}
|/|/1正向搜索最近一次搜索使用的{pattern}
|count|01光标移动到本行的第一个字符上
|count|1附加于命令前,给出计数
|count|2"
|count|3"
|count|4"
|count|5"
|count|6"
|count|7"
|count|8"
|count|9"
|:
|:
1开始进入Ex命令
|N:
|{count}:
开始进入Ex命令,给出从当前行开始到下方
N-1行为止的行范围
|;|;1重复最近的f、t、F或TN次
|<|<{motion}2左移Nmove文本行一个'shiftwidth'
|<<|<<2左移N行一个'shiftwidth'
|=|={motion}2通过"indent"过滤Nmove文本行
|==|==2通过"indent"过滤N行
|>|>{motion}2右移Nmove文本行一个'shiftwidth'
|>>|>>2右移N行一个'shiftwidth'
|?
|?
{pattern}1反向搜索第N次出现的{pattern}
|?
|?
1反向搜索最近一次搜索使用的{pattern}
|@|@{a-z}2执行{a-z}寄存器的内容N次
|@:
|@:
重复上次的":
"命令N次
|@@|@@2重复上次的@{a-z}N次
|A|A2在行尾附加文本N次
|B|B1光标反向移动N个WORD(字串)
|C|["x]C2从光标位置到行尾部分,再加上N-1行进行修改
[到缓冲区(译者注:
应为寄存器,下同)x];等
价于"c$"
|D|["x]D2删除位置到行尾部分,再加上N-1行的字符[到
缓冲区(见上)x];等价于"d$"
|E|E1光标正向移动到第N个WORD的结束处
|F|F{char}1光标左移到第N次出现的{char}上
|G|G1光标移动到第N行,缺省是最后一行
|H|H1光标移动到屏幕顶部开始算的第N行
|I|I2在本行第一个CHAR之前插入文本N次
|J|J2连接(Join)N行;缺省为2
|K|K查找光标所在的关键字(Keyword),使用
'keywordprg'的定义
|L|L1光标移动到屏幕底部开始算的第N行
|M|M1光标移动到屏幕的中间一行
|N|N1反方向重复最近的'/'或'?
'N次
|O|O2在光标上方开始一个新行,并插入文本,重复N
次
|P|["x]P2在光标放置文本[到缓冲区(见上)x]N次
|Q|Q切换到"Ex"模式
|R|R2进入替换模式:
覆盖存在的字符,重复输入文本
N-1次
|S|["x]S2删除N行[到缓冲区(见上)x]]并开始输入;
等价于"cc"
|T|T{char}1光标移动到左侧第N次出现的{char}之前
|U|U2撤消一行内所有最近的改变
|V|V进入面向行的可视(Visual)模式
|W|W1光标前移N个WORD
|X|["x]X2删除光标前的N个字符[到缓冲区(见上)x]
|Y|["x]Y抽出N行[到缓冲区(见上)x];等价于"yy"
|ZZ|ZZ如果修改过,保存当前文件,然后退出
|ZQ|ZQ无论如何退出当前文件
|[|[{char}方括号命令(见下|[|)
\不用
|]|]{char}方括号命令(见下|]|)
|^|^1光标移动到本行的第一个CHAR上
|_|_1光标移动到下方第N-1行的第一个CHAR上
|`|`{a-zA-Z0-9}1光标移动到位置标记{a-zA-Z0-9}
|`(|`(1光标移动当前句子的开始处
|`)|`)1光标移动当前句子的结束处
|`<|`<1光标移动高亮区域的开始处
|`>|`>1光标移动高亮区域的结束处
|`[|`[1光标移动最近一次操作/放置的文本的开始处
|`]|`]1光标移动最近一次操作/放置的文本的结束处
|``|``1光标移动最近一次跳转的位置
|`{|`{1光标移动当前段落的开始处
|`}|`}1光标移动当前段落的结束处
|a|a2在光标处附加文本N次
|b|b1光标反向移动N个单词
|c|["x]c{motion}2删除Nmove文本[到缓冲区(见上)x]并开始
编辑
|cc|["x]cc2删除N行[到缓冲区(见上)x]并开始编辑
|d|["x]d{motion}2删除Nmove文本[到缓冲区(见上)x]
|dd|["x]dd2删除N行[到缓冲区(见上)x]]
|do|do2等同于":
diffget"
|dp|dp2等同于":
diffput"
|e|e1光标正向移动到第N个单词的结束处
|f|f{char}1光标右移到第N次出现的{char}上
|g|g{char}扩展命令,见下|g|
|h|h1光标左移N个字符
|i|i2在光标前插入文本N次
|j|j1光标下移N行
|k|k1光标上移N行
|l|l1光标右移N个字符
|m|m{A-Za-z}在光标位置处设置位置标记{A-Za-z}
|n|n1重复最近的'/'或'?
'N次
|o|o2在光标下方开始一个新行,并插入文本,重复N
次
|p|["x]p2在光标后放置文本[从寄存器x]N次
|q|q{0-9a-zA-Z"}记录输入的字符到命令寄存器{0-9a-zA-Z"}
(大写用于添加)
|q|q(在记录时)停止记录
|q:
|q:
在命令行窗口里编辑:
命令行
|q/|q/在命令行窗口里编辑/命令行
|q?
|q?
在命令行窗口里编辑?
命令行
|r|r{char}2用{char}替换N个字符
|s|["x]s2(替换)删除N个字符[到缓冲区(见上)x]并
开始输入
|t|t{char}1光标移动到右侧第N次出现的{char}之前
|u|u2撤消改变
|v|v开始面向字符的可视(Visual)模式
|w|w1光标前移N个单词
|x|["x]x2