常识
- 空白符包括空格和制表符
- VI 分多种模式
- 命令模式/默认模式 (
ESC,ctr + [) , 移动,跳转,执行命令 (normal) - 输入模式 (
i,I,a,A,o,O,s,S,R) 输入, 编辑 - 末行模式 (
:,/,?) 保存, 退出, 查找, 替换等 - 可视模式 (
v,V,ctrl + v), 选择, 行选, 块选
- 命令模式/默认模式 (
- 常用键
-
w单词, 不包括标点 (w,cw,dw,vw,yw) -
b单词开始, 不包括标点 (b,cb,db,vb,yb) -
e单词结尾, 不包括标点 (e,ce,de,ve,ye) -
W单词, 空白符分割 (W,cW,dW,vW,yW) -
B单词开始, 空白符分割 (B,cB,dB,vB,yB) -
E单词结尾, 空白符分割 (E,cE,dE,vE,yE) -
^软行首, 不包括空白符 (0,c0,d0,v0,y0) -
0硬行首, 包括空白符 (0,c0,d0,v0,y0) -
$行结尾 ($,c$,d$,v$,y$)
-
- 操作
-
c剪切 (cut 进入输入模式) -
d删除 (delete 保持命令模式) -
v选择 (viscidity) -
y复制
-
- 范围
-
i里面 (in) -
a所有 (all), 包括成对的括号, 空格等
-
- 对象
-
w单词 (word) -
s句子 (sentence句子) -
p段落 (paragraph) -
',",),],},>成对标点符号 -
t标签 (tag)
-
- 操作 + 范围 + 对象
-
da)删除小括号及小括号中的内容 -
ci}删除大括号中的内容, 并进入输入模式 -
vip选择当前段落 - 等几十重组合
-
移动
-
h左 (右手食指左移) -
j下 (右手食指) -
k上 (右手中指) -
l右 (右手无名指) -
w下个单词 (word) -
b前一个单词 (before) -
e下一单词结尾 (end) -
W下个单词, 包括标点 (word) -
B前一个单词, 包括标点 (before) -
E下一单词结尾, 包括标点 (end) -
0行首 -
^行首 不包括空白符(正则表达式:字串开始) -
$行尾 (正则表达式:字串结尾) -
-前一行行首 -
+后一行行首 -
gg首行 -
G尾行 -
#G指定行 -
ctrl + f下翻一页 -
ctrl + b上翻一页 -
ctrl + d下翻半页 -
ctrl + u上翻半页 -
(句首 -
)句尾 -
{段首 -
}段尾 -
H屏幕第一行 -
M屏幕中间行 -
L屏幕最后行 -
%跳转到相配对的括号 -
gd跳转到本地定义位置 (Goto local Declaration) -
gD跳转到全局定义位置 (Goto global Declaration) -
ctrl + o返回旧光标位置 (Older)
插入 (转换成输入模式)
-
i光标前插入 -
I行首插入 -
a光标后插入 -
A行末插入 -
o后分段 -
O前分段
选择 (ESC取消选择)
-
v选择 -
V行选择 -
ctrl + v块选择 -
vwvW选择一个单词 -
vbvB选择到单词开始 -
vevE选择到单词末尾 -
v^v0选择到行首 -
v$选择到行尾
删除 (cut进入输入模式, delete保持命令模式)
-
cwdw删除一个单词 -
cWdW删除一个单词, 空格分割 -
cbdb删除到单词开始 -
cBdB删除到单词开始, 空格分割 -
cede删除到单词末尾 -
cEdE删除到单词末尾, 空格分割 -
c^d^c0d0删除到行首 -
c$d$删除到行尾 -
dd删除当前行 -
dD删除到行尾 -
x删除当前字符, 删除选择文字 -
X删除前一个字符, 退格 -
J删除行末换行 -
s删除并转换输入模式 -
S删除行并转换输入模式
修改
-
u撤销上次操作 (undo) -
U撤销当前行所有操作 事情闹大了,得有个更大的UNDO才行 -
ctrl + r回复撤销前 (recover) -
r替换当前字符 -
R替换当前字符直到ESC为止 -
.重复命令 -
`大小写转换 -
>>缩进 -
<<反缩进
复制/粘帖
-
y复制 -
Y复制行 -
ywyW复制当前单词 -
ybyB复制到单词开始 -
yeyE复制到单词结尾 -
y^复制到行首 -
y$复制到行尾 -
yy复制当前行 -
p粘贴到光标后 -
P粘贴到光标前
查找/替换
-
/word向下查找 -
?word向上查找 -
n向下匹配 -
N向上匹配 -
:s/1/2搜索当前行 1 替换成 2 (search) -
:s/1/2/g搜索当前行 1 全部替换成 2 (global) -
:%s/1/2/g搜索全文档 1 全部替换成 2 -
:s/1/2/c搜索全文档 1 替换成 2 需要询问 (cue) -
R替换模式
文件操作
-
:q退出 (quit) -
:w存盘 (write) -
:e编辑 (edit) ,没有输入文件名则加载当前文件 -
:r读取 (read) ,读取文件到当前文件中 -
:!强行操作,退出,存盘,编辑等 -
:x保存并退出 -
zz保存并退出
其他
-
K查找帮助 -
q录制宏 -
@执行宏 -
.重复上个命令