vim quick reference card

原地址:http://tnerual.eriogerg.free.fr/vim.html
翻译:ssword

这里的排版弄的挺难看的,大家如果觉得有用,就将就下吧。

Basic movement
基本移动

h l k j 左移、右移一个字符;上一行,下一行;
b w 左移、右移一个词元
ge e 左移、右移到一个词元末尾
{ } 前、后移动一个段落
( ) 前、后移动一个句子
0 ^ $ 句子的开头、首字符、最后一个字符
nG ngg 第n行的句首、句尾
n% 文件的n%处(n不可省略)
n| 当前行的第n列
% 匹配下一个括号,中括号,大括号,注释或#define
nH nL 当前窗口从顶数、从底数第n行
M 当前窗口的中间行

Insertion & replace→ insert mode
插入&替换 ->插入模式

i a 在光标前、后插入
I A 在当前行前、后插入
gI 在当前行的第一列插入
o O 在当前行的上、下插一新行
rc 把光标下的字符替换为c
grc 同rc相似,不过不影响布局
R 替换从光标往后的所有字符
gR 同R相似,不过不影响布局
cm 修改到移动命令m指向的位置
cc or S 修改当前行
C 修改到行尾
s 修改一个字符,并进入插入模式
~ 转换当前字符的大小写,并右移光标
g~m 转换字符大小写到移动命令m指向的位置
gum gUm 将移动命令m中间的字符转换为大写、小写
m 按照移动命令m,左移、右移缩进
n< < n>> 左移、右移n个缩进

Deletion
删除

x X 删除当前字符、前一个字符
dm 删除到移动命令m指向的位置
dd D 删除当前行
J gJ 将当前行与下一行合并
:rd↵ 删除区间内的文本
:rdx↵ 删除区间内的文本,并将其存入寄存器x

Insert mode
插入模式

^Vc ^Vn 逐字插入字符c、数值n
^A 在当前输入的文本前插入
^@ 同^A,并退出到命令模式
^Rx ^R^Rx 逐字)插入x寄存器的内容
^N ^P 在光标前、光标后自动完成
^W 删除光标前一个单词
^U 删除前面输入的文本
^D ^T 左移、右移一个缩进
^Kc1c2 or c1←c2 插入一个digraph
^Oc 进入临时命令模式执行c
^X^E ^X^Y 向上、向下滚动
回到命令模式

Copying
复制

“x 将下个用于删除、复制、粘贴的寄存器设置为x
:reg↵ 显示所有寄存器的内容
:reg x↵ 显示x寄存器的内容
ym 复制移动命令m之间的文本
yy or Y 复制当前行
p P 将寄存器中的文本粘贴到光标前、后
]p [p 同p P,并自动处理缩进
gp gP 同p P,并保留光标。

Advanced insertion
高级插入

g?m 对移动命令m中间的文本进行rot13加密
n^A n^X 对移动命令m中间的文本进行rot13加密
gqm 将移动命令m中间的多行文本格式化为同一宽度
:rce w↵ 将区间r中的内容以w为宽度居中
:rle i↵ 将区间r中的内容以i个缩进左对齐
:rri w↵ 将区间r中的内容以w为宽度右对齐
!mc↵ 以c命令过滤处理移动命令m中间的文本
n!!c↵ 以c命令过滤处理n行文本
:r!c↵ 以c命令处理区间r中间的文本

Visual mode
可视模式

v V ^V 开始、退出选取文本
o 将光标移动到选取文本的开始
gv 回到上一个选取的文本
aw as ap 选取一个单词、句子、段落
ab aB 选取一个()、{}块

Undoing, repeating & registers
撤销,重复和寄存器

u U 撤销上一个命令,返回上一个修改的行
. ^R 重复上一个修改,重复上一个撤销
n. 重复上一个修改n次
qc qC 记录、追加输入的字符到寄存器c
q 停止记录
@c 执行寄存器c的内容
@@ 重复执行上一个@命令
:@c↵ 把寄存器c作为Ex命令执行
:rg/p/c↵ 对区间r中匹配p的文本执行Ex命令c

Complex movement
高级移动

- + 上移,下移到行首
B W 按空格左移、右移一个词元
gE E 按空格左移、右移到一个词元的末尾
n 下移n-1行到行首
g0 gm 当前行首、行中央
g^ g$ 当前行的首字符、尾字符
gk gj 上移、下移
fc Fc 下一个、前一个字符c
tc Tc 下一个、前一个字符c的前面
; , 重复上一个fFtT操作,反方向
[[ ]] 上一个、下一个节开头
[] ][ 上一个、下一个节结尾
[( ]) 上一个、下一个未关闭的括号
[{ ]} 上一个、下一个未关闭的大括号
[m ]m 上一个、下一个java方法的开头
[# ]# 上一个、下一个未关闭的#if #else #endif
[* ]* 上一个、下一个/* */的开头和结尾

Search & substitution
搜索 &替换

/s↵ ?s↵ 向前、向后搜索s
/s/o↵ ?s?o↵ 按o个偏移向前、向后搜索s
n or /↵ 向前重复上一个搜索
N or ?↵ 向后重复上一个搜索
# * 向前、向后搜索当前词元
g# g* 同上,额外匹配不完整的词元
gd gD 当前符号的局部、全局定义
:rs/f/t/x↵ 将区间r中匹配f的文本替换为t
:rs x↵ 以新的区间和x重复替换

Special characters in search patterns
模式匹配中的特殊字符

. ^ $ 任一字符,行的首字符,尾字符
\< \> 单词的开头,结尾
[c1-c2] 在c1..c2之间的任一字符
[^c1-c2] 不在c1..c2之间的任一字符
\i \k \I \K 标志符,关键字;字母,数字
\f \p \F \P 文件名;可打印字符;字母;数字
\s \S 空格;非空字符
\e \t \r \b ←>键, , < ?>, < ←>
\= * \+ 匹配0个或一个、0个或多个、一个或多个模式
\| 两个选择
\( \) 将一组模式组合成一个
\& \n 匹配全部、匹配第n个括号中的内容 *
\u \l 匹配下一个大写、小写字母
\c \C 忽略、匹配下一个模式

Offsets in search commands
偏移

n or +n 下n行的第1列
-n 上n行的第1列
e+n e-n 匹配文本结尾右边、左边的第n个字符
s+n s-n 匹配文本右边开头右边、左边的第n个字符
;sc 向下执行搜索命令sc

Marks and motions
标记 &跳转

mc,c∈[a..Z] 把当前位置标记为c,c∈[a..Z]
`c `C 跳到当前文件、任意文件的c标记
`0..9 跳到上一个位置
“ `” 跳到上一个位置,上一次编辑的位置
`[ `] 跳到上一个修改段落的开头、结尾
:marks? 输出可用的标记列表
:jumps? 输出跳转列表
n^O 跳到跳转列表的前一个位置
n^I 跳到跳转列表的后一个位置

Key mapping & abbreviations
键映射 &缩写

:map c e↵ 在普通模式和可见模式中将c映射为e
:map! c e↵ 在插入模式和命令模式中将c映射为e
:unmap c↵ :unmap! c↵ 移除映射c
:mk f↵ 将当前的映射和设置写入到文件f
:ab c e↵ 把e设置为c的别名
:ab c↵ 显示c开头的所有别名
:una c↵ 移除别名c

Tags
标签

:ta t↵ 跳到t匹配的tag
:nta↵ 跳到列表中后面第n个tag
^] ^T 跳到光标指向的tag,从tag返回
:ts t↵ 列出匹配的tag供选择跳转
:tj t↵ 跳到标签t,如果有多个匹配则提示选择
:tags↵ 显示tag列表
:npo↵ :n^T↵ 向前返回、跳至第n个tag
:tl↵ 跳到最后一个匹配的tag
^W} :pt t↵ 当前光标指向的前一个tag、 t匹配的tag
^W] 分割窗口,显示当前光标指向的tag
^Wz or :pc↵ 关闭显示tag的窗口

Scrolling & multi-windowing
滚动 &多窗口

^E ^Y 向上、向下滚动一行
^D ^U 向上、向下滚动半页
^F ^B 向上、向下滚动一页
zt or z↵ 将当前行滚动到窗口顶部
zz or z. 将当前行滚动到窗口中央
zb or z- 将当前行滚动到窗口底部
zh zl 向右、向左滚动一个字符
zH zL 向右、向左移动半屏
^Ws or :split↵ 将窗口分割成两个
^Wn or :new↵ 创建一个新窗口
^Wo or :on↵ 关掉当前窗口以外的其他窗口
^Wj ^Wk 移动到下一个、上一个窗口
^Ww ^W^W 移动到下一个、上一个窗口 (wrap)*

Ex commands
Ex命令

:e f 编辑文件f,如果没有更改
:e! f 强制编辑文件(默认覆盖原先的修改)
:wn :wN 写入文件,并编辑下一个、前一个文件
:n :N 编辑文件列表中的下一个、前一个文件
:rw 把区间r写入到当前文件
:rw f 把区间r写入到文件f
:rw>>f 把如见r追加到文件f
:q :q! 退出并确认,强制退出忽略修改
:wq or :x or ZZ 写入到当前文件并退出
:r f 将光标下的内容插入文件f
:r! c 将光标下的内容经命令c处理的结果插入
:args 显示参数列表
:rc a :rm a 复制、移动区间r到a行下

Ex ranges
Ex区间

. $ 文件的当前行,最后一行
% * 整个文件、可视部分
‘t 标记t指向的位置
/p/ ?p? 匹配的下一个、前一个位置
+n -n 当前行的前n-1行、后n-1行

Folding
折叠

zfm 创建折叠到移动命令m指向的位置
:rfo 为区间r创建折叠
zd zE 移除当前折叠、当前窗口的所有折叠
zo zc zO zC 打开、关闭一个折叠;递归地执行
[z ]z 移动到当前打开折叠的开头、结尾
zj zk 向下、向上移动到下一个折叠的开头、结尾

Miscellaneous

:sh↵ :!c↵ 运行shell,执行shell命令c
K 在man中搜索当前关键字
:make↵ 执行make,读取错误并跳转到首个错误
:cn↵ :cp↵ 显示下一个、前一个错误
:cl↵ :cf↵ 显示所有错误、从文件中读取错误
^L ^G 重绘屏幕,显示文件名及位置
g^G 显示光标所在行、列及字符位置
ga 显示当前字符的ascii值
gf 打开当前光标下的文件名
:redir>f↵ 将输出重定向到文件f
:mkview ↵ 保存view配置[到文件f]
:loadview ↵ 装载view配置[从文件f]

ps:高数59分华丽地挂掉鸟~

11 Responses to “vim quick reference card”


Leave a Reply