Vi 编辑器
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.命令模式下的操作 a o i
1) 命令模式下进入输入模式
|
命令 |
说明 |
|
i |
光标所在位置前开始插入文本 |
|
I |
将光标移至当前行的行首,然后在其插入文本 |
|
a |
当前光标所在位置之后追加文本。 |
|
A |
将光标挪到当前行的行尾,从那里开始插入新文本 |
|
o |
将光标所在行的下面新开一行,并将光标置于该行的行首,输入文本 |
|
O |
在光标所在行的上面插入一行,并将光标置于该行的行首,等待输入文本 |
2) 命令模式下的光标定位
|
命令 |
说明 |
|
G |
将光标移至最后一行行首 尾部 |
|
gg |
将光标移至第一行(首行) 首部 |
|
nG |
光标移至第n行的行首 直接定位 |
|
n+ |
光标下移n行 |
|
n- |
光标向上移动n行 |
|
n$ |
光标移至第n行行尾 相对于当前行 |
|
0 |
移动至所在行的行首 绝对行首 |
|
$ |
移到光标所在行的行尾 |
|
^ |
移到光标所在行的第一个字符(非空格) 非空白符 |
|
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 |
向后搜索 n 同方向切换 N 反方向切换 |
|
:?str |
向前搜索 n 同方向切换 N 反方向切换 |
|
:/str/w file |
将包含有str行的写到file中 搜索 io读写 写磁盘 |
|
:/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 |
|
:.,$s/str1/str2/g |
从当前位置到结尾所有的str1替换为str2 |
4) 在命令模式下复制、移动和删除文件行
|
命令 |
说明 |
|
:n1,n2 co n3 |
将从n1开始到n2开始为止所有内容复制到n3后面 copy |
|
:n1,n2 m n3 |
将从n1开始到n2为止的所有内容移动到n3后面 |
|
:d |
删除当前行 |
|
:nd |
根据指定的行号删除指定的行 |
|
:n1,n2 d |
删除从n1开始到n2所有内容 |
|
:.,$d |
删除从当前行到结尾的所有内容 |
|
:0,.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 |
设为只读 |
Vi 编辑器的更多相关文章
- vi编辑器使用
显示行号 set nu 取消行号 set nonu 定位到某一行 gg 定位到首行 G 定位到最后一行 在VI编辑器中切换调用外部shell命令 :!ifconfig 在编辑过程中,看ip地址 插 ...
- vi编辑器命令
Linux下的文本编辑器有很多种,vi 是最常用的,也是各版本Linux的标配.注意,vi 仅仅是一个文本编辑器,可以给字符着色,可以自动补全,但是不像 Windows 下的 word 有排版功能.v ...
- Linux学习之一--VI编辑器的基本使用
vi编辑器是Linux系统下标准的编辑器.而且不逊色于其他任何最新的编辑器.可是会用的有多少呢.下面介绍一下vi编辑器的简单用法和部分命令.让你在Linux系统中畅行无阻. 基本上vi可以分为三种状态 ...
- vi编辑器的常规使用
1.命令模式(command mode)-执行命令 在该模式中,可以输入命令来执行许多种功能.控制屏幕光标的移动,字符.字或行的删除,移动复制某区段及进入Insert mode下,或者到 last l ...
- vi编辑器 使用 命令
vi编辑器 1)命令模式 打开文件后.默认处于命令模式,命令模式无法编辑文件 2)输入模式 在命令模式下 按 i 进入输入模式,便于编辑文件内容 3)末行模式 编辑内容后,按esc进入到命令模式,再按 ...
- Linux 中 Vi 编辑器的简单操作
Linux 中 Vi 编辑器的简单操作 Vi 编辑器一共有3种模式:命名模式(默认),尾行模式,编辑模式.3种模式彼此需要切换. 一.进入 Vi 编辑器的的命令 vi filename //打开或新 ...
- 第三天 vi编辑器使用和软件安装
[复习] 判断题: 查看某文件权限为rwxr-xr-- ,则其所属组权限为只读. 对一个目录有w权限,表示可以修改目录下文件内容. 3..tar.gz格式的压缩包可以使用tar -xjf解压缩 4.m ...
- linux基础-第九单元 利用vi编辑器创建和编辑正文文件
vi编辑器简介 什么是vi vi编辑器的操作模式 vi编辑器的3种基本模式 在vi编辑器中光标的移动 移动光标位置的键与光标移动间的关系 进入插入模式 从命令行模式进入插入模式的命令 在命令行模式下删 ...
- linux vi编辑器操作手册
简介 Linux下的文本编辑器有很多种,vi 是最常用的,也是各版本Linux的标配.注意,vi 仅仅是一个文本编辑器,可以给字符着色,可以自动补全,但是不像 Windows 下的 word 有排版功 ...
- linux中vi编辑器的使用
vi编辑器是所有Unix及Linux系统下标准的编辑器,它的强大不逊色于任何最新的文本 编辑器,这里只是简单地介绍一下它的用法和一小部分指令.由于对Unix及Linux系统的任 何版本,vi编辑器是完 ...
随机推荐
- 三:Ionic Framework开发Android应用
第一步:添加Android平台 ionic cordova platform add android 第二步:编译Android应用 中间等待的过程有点长,需要耐心等待,生成的apk此时可以复制至平板 ...
- python模块之HTMLParser
HTMLParser是python用来解析html的模块.它可以分析出html里面的标签.数据等等,是一种处理html的简便途径. HTMLParser采用的是一种事件驱动的模式,当HTMLParse ...
- 原本就有mysql,安装phpstudy使用里面自带的mysql导致原来的没服务
电脑中之前安装了mysql,正常服务中,但做项目的需要,安装了phpStudy,它里面自带了mysql,启动phpstudy里面的mysql后在用原来的就没服务了, 到电脑管理服务中也没有发现mysq ...
- 如何求先序排列和后序排列——hihocoder1049+洛谷1030+HDU1710+POJ2255+UVA548【二叉树递归搜索】
[已知先序.中序求后序排列]--字符串类型 #1049 : 后序遍历 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 小Ho在这一周遇到的问题便是:给出一棵二叉树的前序和 ...
- 封装boto3 api用于服务器端与AWS S3交互
由于使用AWS的时候,需要S3来存储重要的数据. 使用Python的boto3时候,很多重要的参数设置有点繁琐. 重新写了一个类来封装操作S3的api.分享一下: https://github.com ...
- Python开发基础-Day4-布尔运算、集合
布尔值 True 真 False 假 所有的数据类型都自带布尔值,数据只有在0,None和空的时候为False. print(bool()) print(bool()) print(bool('')) ...
- java-多线程-一道阿里面试题分析
这段代码大多数情况下运行正常,但是某些情况下会出问题.什么时候会出现什么问题?如何修正?可见博客 http://yueyemaitian.iteye.com/blog/1387901 1.public ...
- VB查询数据库之写入数据库——机房收费系统总结(三)
在机房收费系统中,新注册的用户,更改的密码,上机下级记录,上机收费记录等等都要写入数据库,这样,后面的查询才能生效.像数据库中写入数据,首先,找到你要写入数据的数据库中的表,在表中建立新的行,让后再把 ...
- 14年安徽省赛数论题etc.
关于最大公约数的疑惑 题目描述 小光是个十分喜欢素数的人,有一天他在学习最大公约数的时候突然想到了一个问题,他想知道从1到n这n个整数中有多少对最大公约数为素数的(x,y),即有多少(x,y),gcd ...
- BZOJ 2888 资源运输(启发式合并LCT)
[题目链接] http://www.lydsy.com/JudgeOnline/problem.php?id=2888 [题目大意] 不断加边,问每个连通块的重心到其它点的距离和的和 [题解] 启发式 ...