第四章 vi/vim文本编辑器

4.1 VI 和 VIM 两种文本编辑器

命令模式:快捷键操作,可用于跳转,复制,粘贴,删除等等

插入模式:对文件进行编辑

末行模式:用作保存退出或者编辑环境

vi和vim

vi 和 vim 都是 Linux 中最常用的、最基本的、CLI命令行环境中的文本编辑器,类似于Windows的记事本。

区别:

vi编辑器 :是UNIX早期自带的文本编辑器,更简单,不支持语法颜色。

vim编辑器 :是在 vi 基础上的改进版本,比 vi 功能更强大,支持语法颜色。

vim 是 vi 的升级版,如未安装,则安装方法是:yum install vim -y

vim 有颜色 ,在编辑文件内容时候很容易看出来格式是否有误,如果错误颜色会直接改变

4.2 VI 和 VIM 的工作模式

4.2.1 掌握三种模式切换

插入-----------命令-----------末行

命令模式 按 i,a,o 大小写进入插入模式

插入模式 按 ESC 退到命令模式

命令模式 按 :进入末行模式

末行模式 按 ESC 退到命令模式

4.2.2 各模式具体功能

模式名称模式功能
(1) 命令模式该模式负责实现:一些快捷的编辑操作,也是模式切换的中枢。 打开vi编辑器,就默认处于命令模式。 例如:dd删除行、yy复制行、p粘贴、u撤消 … 等等 快捷操作。
(2) 插入模式该模式负责实现:最主要的编辑功能。 例如:常规的文本录入及编辑修改。
(3) 末行模式该模式负责执行:一些特定的管理操作。 例如:w保存、q退出、set设置、/查询 … 等等 管理操作。

4.3 vi vim的常用指令

终端 Ctrl + R 搜索模式

命令模式:

i 								  ## 当前字符之前插入 (光标前)   最常用,因为本来就是在光标前编辑
I								  行首插入 (行首) 
a 								  当前字符之后插入 (光标后) 
A   							  行尾插入(行尾)
o 								  下一行插入 (另起一行)   一般在最后新的一行写内容时候,光标移到最后一行按 o
O 								  上一行插入(上一行插入)
hjkl                              左下上右移动光标
gg                                定位到第一行的行首  相当于1gg
ngg                               ## 定位到第n行的行首  比如10gg定位到第 10行
G                                 定位到最后一行的行首

yy                                复制当前行         相当于1yy
nyy                               从当前行开始往下一共复制n行  比如3yy是从当前行往下一共复制三行(包括当前行三行)

dd                                剪切
ndd                               ## 当前行往下剪切一共n行

p                                 ## 当前行往下一行粘贴
P(大写)                            当前行往上一行粘贴

u                                 ## 撤销
Ctrl + r                          ## 反撤销

/                                 ## 开启搜索模式   n向下搜索, N向上搜索、
?                                 开启搜索模式,从下往上搜索
/bin                              搜索bin   会发亮
/\/bin                            搜索 /bin  当搜索的内容有特殊符号 比如/ 时候,要使用转义字符 \ 进行转义

先gg在dG                           删除所有内容
0 或 ^                            跳到当前行行首
$                                 跳到当前行行尾

Ctrl + v                          进入可视化,作用很大
Shift + zz						  保存退出

Ctrl + v 进入可视化后

可视化之后通过 hjkl  或者  方向键 进行上下左右  选中几行几列的矩形里面内容 进行操作
s              删除选中的内容,删除之后会自动进入插入模式
比如我要给5行到第100行变成注释内容  每一行前面加 # 即可
命令模式下光标移到第五行行首
Ctrl + v          ## 进入可视化  方向键拉到第100行   即第5到第100行的首字母光标发亮
Shift + i         ## 直接进入插入模式
输入#              esc返回退回命令模式即可

插入模式:进行编辑

末行模式:

w              			保存
q              			退出
wq!           		    强制保存并退出
q!             			强制退出
set nu         			显示行号
set nonumber			隐藏行号

r						把别的文件内容复制粘贴过来   比如 :r 1.txt  就是把1.txt里面的内容粘贴到本文件

syntax on      			启动高亮显示  默认是显示,vim 独有功能,通过颜色更好让人判断写的内容格式是否有误
syntax off     			隐藏高亮显示,和vi一样显示
set syn=normal          隐藏高亮显示

set list 				显示文本格式控制符     默认是隐藏    比如会在文件行尾多了一个 $ 符号
set nolist 				隐藏文本格式控制符

s///      s###      s@@@  s|||            这几个都是关键字替换功能,用法一样	
s/11111/22222/       	  将光标的所在行的第一个11111替换成22222
s/老的/新的/g              将老的替换成新的
s/老的/新的/g              将光标所在行的关键字全部进行替换
%s/老的/新的/              将全文的第一个关键字进行替换
%s/老的/新的/g             将全文的关键字进行替换        s/// 可用上面的代替    
%s#/sbin#root#g			  将全部的 /sbin 替换成 root

4.4 恢复VI和VIM编辑的文本文件

★ 问题情况1:当异常关闭vi编辑器,从而造成一部分数据尚未正常的保存,会遗留<.xxx.swp临时交换文件> 比如突然关机

★ 问题情况2:同时多个vi编辑器来编辑相同的文件,从而造成冲突,会遗留<.xxx.swp临时交换文件>

解决办法 :我们可以重新vim 该文件 然后会显示存在 .原文件名.swp 隐藏文件 如下图所示

我们存在文件 passwd 但是修改途中发生意外没有保存就被中止退出 再次 vim passwd 得到下图

在这里插入图片描述

我们可以 通过 r 恢复进入到修改过后但没保存的内容 也可以通过 e 进入到修改之前的内容 或q退出 a中止

不过无论是 r 还是e 我们得到自己想要的文件后,还需要删除隐藏的交换文件(.passwd.swp),否则每次vim 该文件时候都会出现这个情况

当然我们可用通过如下命令快速恢复

vi -r passwd     		## 第一步:恢复修改没保存的数据
rm -rf .passwd.swp  	## 第二步:删除swp交换文件
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值