9、删除
9.1 删除命令
vi命令 | 操作键 |
x | 删除当前光标处的字符 |
X | 删除光标左边的字符 |
D | 删除从当前光标到本行末尾的字符 |
J | 删除两行之间的换行符 (亦可用于合并两行) |
dmove | 删除从当前光标到move所给位置的字符 |
dd | 删除当前行 |
ex命令 | |
:lined | 删除指定行 |
:line,lined | 删除指定范围内的行 |
9.2 常用的删除组合命令
说明:操作符命令+位移命令
1 nx 删除多个字符(n为删除的字符个数)
2 dw 删除1个单词
3 d10w 删除10个单词
4 d10W 删除10个单词,忽略标点符号。
5 db 向后删除一个单词
6 d2) 删除两个句子
7 d5} 删除5个段落
8 dG 或 :.,$d 删除当前行到编辑缓冲区末尾的所有行
9 dgg 或 d1G 或:1,.d 删除当前行到编辑缓冲区开头的所有行
10 :1,$d 或 :%f 删除整个编辑缓冲区
11 d/word 删除从光标所在位置到单词word的所有文本
12 .,/word/d 删除从光标所在位置到单词word的所有文本
13 df x 删除至当前行中x所在的位置
14 d^ 删除至该行的开始处
9.3插入模式中删除操作
^U 删除当前行
^H 删除前一个字符
^W 删除前一个词
9.4 撤销或重复改变
vi命令:
1 u 撤销上一命令对编辑缓冲区的修改
2 U 恢复当前行(即一次撤销对当前行的全部操作)
3 .点号 重复上一命令对编辑缓冲区的修改
9.5 恢复删除
语法:"1p(P)
说明:
1 1为缓冲区的编号。
2 p在当前行的下面插入,P在当前行的上面插入。
9.6 复制上一次删除
命令 | 说明 |
p | 复制上一次删除的内容,插入到光标的后面/下面 |
P | 复制上一次删除的内容,插入到光标的前面/上面 |
10 复制
10.1 接出(复制单词、句子、段落)
当在不删除文本的情况下将文本复制到无名缓冲区时,称为接出(yank)。(因此将命令命名为y、yy、Y)。
步骤:
1 使用y、yy、Y将文本由编辑缓冲区复制到无名缓冲区中,但不删除原始文本。
2 将光标移动到希望插入文本的位置。
3 使用P或p命令执行插入。
常用命令 | 操作键 |
yw | 接出一个单词 |
y10w | 接出10个单词 |
y10W | 接出10个单词,忽略标点符号 |
yb | 向后接出一个单词 |
y2) | 接出两个句子 |
y2} | 接出5个段落 |
yy | 接出一行 |
10yy | 接出10行 |
y$ | 接出从当前字符到本行末尾的的文本 |
y0 | 接出从当前字符到这一行开头之间的文本 |
10.2 复制与移动行
语法:
:x,ycoz
:x,ymz
说明:
1 x,y,z都是行号。x,y是源行,z是目标行号。
2 源行x,y被复制或移动,插入到z行的下面。
3 :m删除原始行,:co不删除原始行。
例子:
1 :2co4 复制第2行,插入到第4行下面
2 :2,4co8 复制第2行到第4行,插入到第8行下面
3 :2m4 移动第2行,插入到第4行下面
4 :2,4m8 移动第2行到第4行,插入到第8行下面。