linux下vi命令整理

来源:互联网 发布:it盈利模式 编辑:程序博客网 时间:2024/06/05 11:20

linux下vi命令整理

1. 简介

Vi,是一个文本编辑器,可以执行输出、删除、查找、替换、块操作等众多文本操作,vi不是一个排版程序。不像word或WPS那样可以对字体、格式、段落等属性进行编排,他只是一个文本编辑器。

2. 进入vi文本编辑器的方式
方式 说明
vi 进入vi默认模式
vi filename 打开新建文件filename,并将光标置于第一行
vi +n filename 打开文件filename,并将光标置于n行首
vi + filename 打开文件filename,并将光标置于最后一行。
vi +/pattern filename 打开文件filename ,并将光标置于第一个与pattern匹配的行。

3.Vi的三种模式

这里写图片描述

4.命令模式下的操作

1)命令模式下进入输入模式
命令 说明
i 光标所在位置前开始插入文本
I 将光标移至当前行的行首,然后在其插入文本
a 当前光标所在位置之后追加文本。
A 将光标挪到行的行尾,从那里开始插入新文本
o 将光标所在行的下面新开一行,并将光标置于该行的行首,输入文本
O 在光标所在行的上面插入一行,并将光标置于该行的行首,等待输入文本

2)命令模式下的光标定位
命令 说明
G 将光标移至最后一行行首
gg 将光标移至第一行(首行)
nG 光标移至第n行的行首
n+ 光标下移n行
n- 光标向上移动n行
nn0 移到光标所在行的行尾
^ 移到光标所在行的第一个字符(非空格)
h,j,k,l 左,下,上,右

3)命令模式下的替换和删除
命令 说明
rc 用字符c替换光标所指向的当前字符
nrc 用字符c替换光标所指向的n个字符
x 删除光标处的字符
nx 删除从光标位置开始向右的n个字符
dw 删除一个单词
ndw 删除n个指定的单词
db 删除光标所在位置之前的单词
ndb 删除所在位置之前的n个单词
dd 删除光标所在整行
ndd 删除n行
dG 删除光标位置到最后一行的所有内容
d1G 删除光标位置到第一行的所有内容
d$ 删除光标位置到当前行的末尾的内容
d0 删除光标位置到当前行开始的内容

4)命令模式下的复制和粘贴
命令 说明
yy 当前行内容复制到缓冲区
nyy 将当前行开始n行内容复制到缓冲区
yG 将当前光标位置到最后一行的所有内容复制到缓冲区
y1G 将当前光标位置到第一行的所有内容复制到缓冲区
y$ 将当前光标到当前行尾内容复制到缓冲区
y0 将当前光标位置到当前行开始的内容复制缓冲区
p 将缓冲区的内容写出到光标所在位置

5)命令模式下的搜索
命令 说明
/str 向下查找
?str 向上查找
n 相同方向移动
N 向反方向移动

6)命令模式下撤销、重做
命令 说明
u 撤销
Ctrl+r 重做撤销的动作

7)命令模式下退出vi
命令 说明
ZZ 存盘退出
ZQ 不保存退出

8)翻屏
命令 说明
Ctrl+f 向下翻
Ctrl+b 向上翻

5.末行模式下的操作

1)末行模式下退出vi
命令 说明
:q 退出 没有动过文件
:wq 保存并退出
:q! 不保存并退出
:w 保存
:x 保存退出等价于:wq

2)末行模式下的跳行
命令 说明
:n 直接输入移动的行号

3)在命令模式下搜索和替换字符串
命令 说明
:/str 向后搜索
:?str 向前搜索
:/str/w file 将包含有str行的写到file中
:/str1/,/str2/w file 从str1开始到str2结束的内容写入到file文件中
:s/str1/str2/ 找到的第一个str1替换为str2
:s/str1/str2/g 找到的所有的str1替换为str2
:n1,n2s/str1/str2/g 从n1行到n2行找到所有的str1替换为str2
:1,.s/str1/str2/g 从第一行到当前位置所有的str1替换为str2

4)在命令模式下复制、移动和删除文件行
命令 说明
:n1,n2 co n3 将从n1开始到n2开始为止所有内容复制到n3后面
:n1,n2 m n3 将从n1开始到n2为止的所有内容移动到n3后面
:d 删除当前行
:nd 删除当前行开始的n行
:n1,n2 d 删除从n1开始到n2所有内容
:.,$d 删除从当前行到结尾的所有内容
:/str1/,/str2/d 删除从str1开始到str2为止所有内容

5)在命令模式下的文件相关命令
命令 说明
:w file 将当前编辑的内容写到file文件中
:n1,n2 w file 将从n1开始到n2结束的行写入到file中
:nw file 将第n行写入到文件中
:1,.w file 从第一行起到光标当前位置写入到file文件中
:.,$ w file 从当前位子到文件结尾内容写入到file中
:r file 打开另一个文件
:e file 新建file文件
:f file 把当前文件改名为file文件

6)在命令模式下执行Shell命令
命令 说明
:!cmd 运行Shell命令
:r!cmd 将命令运行的结果写入当前位置

7)设置vi的环境
命令 说明
:set nu 设置行号
:set nonu 取消行号
:set readonly 设为只读

原创粉丝点击