vim quick reference card

fleuria » 02 Jul 2009

原地址: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分华丽地挂掉鸟~

hosted on github, and powered by jekyll. (rss)