常用VI 编辑
1 基本编辑指令(由指令模式进入编辑模式)
1.1 Append(追加,既在原光标所在位置后面加入字符)
a 从光标所在位置後面开始插入数据,
A 从光标所在行的最後面开始插入数据
1.2 Insert(插入,既在原光标所在位置前插入字符)
i 从光标所在位置前面开始插入数据
I 从光标所在行最前面开始插入数据
1.3 Open
o 在光标所在行的下一行插入数据
O 在光标所在行的上一行开始插入数据
1.4 Replay (替换,既替换光标所在位置字符)
r 修改光标所在字元,一次只修改一个,既光标所在字 符 ,并且不改变命令行状态
R 进入取替换状态,新增文字会覆盖原先文字,直到按 [ESC] 回到指令模式下为止
1.5 chang(改变,既先删除需要改变的字符,然后在改变的位置输入)
cw 改变光标所在位置的的一个字节,然后进入插入模式,如果光标在字符中间,则改变光标所在位置到该字节的结束,如果光标在字节的开头,则改变整个字节
cb 改变光标所在位置前的一个字节~~~~
cnw 改变光标所在位置的后n个字节
c0 改变光标所在位置到行的开头的字节
c$ 改变光标所在位置到行结束的字节
2 光标移动指令
2.1 行的移动
h 向左移动 nh 向左移动n个字符
j 向下移动 nj 向下移动n行
k 向上移动 nk 向上移动n行
l 向右移动 nl 向右移动n个字符
0 移动到光标所在行的最前面
$ 移动到光标所在行的最后面
b 移动到下一个字的第一个字母
w 移动到上一个字的第一个字母
字符与数值的组合,
nw 移动到下n个字的第一个字母
nb 移动到上n 个字的第一个字母
2.2 段的移动
Ctrl+f 向上一页
Ctrl+b 向下一页
H 移动到当前屏幕的第一行
M 移动到当前屏幕的中间行
L 移动到当前屏幕的最后一行
2.3 移动屏幕,但光标的位置不变
z (enter) 移动当前行到屏幕的顶端,并滚动
z . 移动当前行到屏幕的中间,并滚动
z- 移动当前行到屏幕的底端,并滚动
2.4 按句子移动光标
( 从光标位置移动到句子的开始
) 从光标的位置移动到下一个句子
3 删除 复制
dd 删除所在的行
D 删除从光标位置开导到所在行的末尾
dl 向右删除一个字符
dh 向左删除一个字符
dj 删除本行加下一行,总共删除2行
yy 复制 所在的行
5yh 向前复制5个字符
nyj 向下复制n行(包括当前行,则有N+1行)
nyk 向上复制n行(~~~~~~~~~~~~)
删除和复制同理
d ,y 与下面的字符结合可控制删除,复制的位置
0 光标所在位置到该行的最后一个字符
$ 光标所在位置到该行的第一个字符
复制的字符被放在缓存区,P 把复制的内容放到光标之前的位置
p 把复制的内容放到光标之后的位
4 取消上一次操作
u 取消上次操作and 保存删除的行,当删除了不想删除的字符时,按u可以回到最后一次操作前的状态,连续按u 可以恢复到前n个状态。
p(小写) 复制上一次删除的内容,复制到当前光标的下一位置,连续按p 则复制n个相同的内容
P 复制到当前光标的上一位置
. 重复三次操作
5 连接下一行
J 连接光标所在行的下一行
6 查找字符
/word 查找/下的字符,光标停留在查找的字符出
for example /dec 查找屏幕中的字符 dec
fx (x代表任意一个字符) 查找当前行光标后的字符x
Fx 查找当前行光标前的字符x
; 重复查找
7 复习
Text Object |
Change |
Delete |
Copy |
1 word |
Cw |
Dw |
yw |
2 words, not counting punctuation |
2cW or c2W |
2dW or d2W |
2yW or y2W |
3 words back |
3cb or c3b |
3db or d3b |
3yb or y3b |
1 line |
Cc |
Dd |
yy or Y |
to end of line |
c$ or C |
d$ or D |
y$ |
to beginning of line |
c0 |
d0 |
y0 |
single character |
R |
x or X |
yl or yh |
five characters |
5s |
5x |
5yl |
Movement |
Commands |
|
h, j, k, l |
forward by word |
w or W |
backward by word |
b or B |
to end of line |
$ |
to beginning of line |
0 |
Grep SIB501 * 在当前目录下造成构件号为SIB501的构件