第一节 了解:VI 和 VIM 两种文本编辑器
★ VI 和 VIM 是什么?
vi 和 vim 都是 Linux 中最常用的、最基本的、CLI命令行环境中的文本编辑器,类似于Windows的记事本。
vim 是 vi 的升级版,如未安装,则安装方法是:yum install vim -y
★ VI 和 VIM 彼此的区别?
vi编辑器 :是UNIX早期自带的文本编辑器,更简单,不支持语法颜色。
vim编辑器 :是在 vi 基础上的改进版本,比 vi 功能更强大,支持语法颜色。
第二节 掌握:VI 和 VIM 的工作模式
一、了解:vi 和 vim 三种常用的工作模式
二、掌握:三种模式之间的切换
第三节 掌握:VI 和 VIM 的常用操作指令
一、掌握:命令模式中的快捷操作
★ 定位:
定位 整行: Ngg 10gg 定位到:指定行号的行首
2gg 定位到:指定行号的行首
gg == 1gg 定位到:第1行的行首
G 定位到:末行的行首
定位 行内光标位置:
^ 定位:一行中的行首
$ 定位:一行中的行尾
★ 复制:
Nyy 10yy 复制:光标所在的当前行及其后续N-1的连续多行
2yy 复制:光标所在的当前行及其后续N-1的连续多行
1yy == yy 复制:光标所在的当前行及其后续N-1的连续多行
★ 粘贴:
p(小写) 在光标所在的当前行的下面,插入式写入复制或剪切的数据
P(大写) 在光标所在的当前行的上面,插入式写入复制或剪切的数据
★ 剪切:
x 剪切:光标所在当前字符
D 剪切:从光标所在当前字符直至行尾的所有字符
Ndd 剪切:光标所在的当前行及其后续N-1的连续多行
dG 剪切:光标所在的当前行直至末行
★ 反悔:
u 撤销一步(类似:悔一步棋)
Ctrl+r 前进一步(类似:进一步棋)
★ 搜索:
/ 开启搜索,但是初始方向是向下
举例:/root 搜索root关键字,按 n 继续正向搜索,按 N 继续反向搜索
? 开启搜索,但是初始方向是向上
举例:?root 搜索root关键字,按 n 继续正向搜索,按 N 继续反向搜索
二、掌握:末行模式中的基本操作
★ 先按【ESC 键】退回到<命令模式>,再按【: 键】进入<末行模式>,最后输入如下指令:
## 注意:
## 【: 冒号】表示:处于【末行模式】中。
: w 保存,不退出
: q 退出,不保存
: wq 保存,并退出
: wq! 强制保存,并退出
: q! 当我们修改了文件的内容之后,又不保留,这个时候,需要 :q! 强制退出,不保存。
如果你在退出之前,没有执行 :w , 则 :q! 强制退出,将不保存你的所有操做
如果你在退出之前,已经执行 :w , 则 :q! 强制退出,将不影响你已经保存的数据
: set list 可以显示出文本格式控制符,从而有利于我们排查语法错误
: set nolist 可以隐藏文本格式控制符
: set syn=normal 取消语法高亮显示 ☚ 这是 vim 功能
: syntax on 启用高亮显示 ☚ 这是 vim 功能
三、掌握:末行模式中的高级操作
★ 先按【ESC 键】退回到<命令模式>,再按【: 键】进入<末行模式>,最后输入如下指令:
## 注意:
## 【: 冒号】表示:处于【末行模式】中。
第四节 运用正则表达式
★ 可以通过<\m>或<\v>来使用<正则表达式>
※ <\m>(即:magic之意)
表示:除了 $ . * ^ 之外,<其他元字符>都要加<\反斜杠>
例如:
/\ma\+bc <---- 搜索:abc字符串(a字符可以有1个或多个)
※ <\v>(即:very magic之意)
表示:<任何元字符>都不用加<\反斜杠>
例如:
/\va+bc <---- 搜索:abc字符串(a字符可以有1个或多个)
★ 搜索举例(采用:\v 方式)
/\va+bc ## 通过<\v>使用<正则表达式>,向下搜索:abc字符串(a字符可以有1个或多个)
?\va+bc ## 通过<\v>使用<正则表达式>,向上搜索:abc字符串(a字符可以有1个或多个)
★ 替换举例(采用:\v 方式)
## 注意:
## 【: 冒号】表示:处于【末行模式】中。
: %s/\v(^.*)/#\1/ ## 在<所有行>的<行首>,添加一个<# 井号字符>
: %s/\v^[ \t]*(#|$)// ## 去除<所有行>的<行首>的<# 井号字符>
: %s/\v(^.*)/\1\r/ ## 在<每一行>后面,添加一个<空行>
: %s/\v^\n$//g ## 删除<多行空行>,仅保留一行<空行>
★ 删除举例(采用:\v 方式)
## 注意:
## 【: 冒号】表示:处于【末行模式】中。
: g/\v^[ \t]*(#|$)/d ## 删除所有的<注释行>和<空行>
第五节 VISUAL可视化模式
★ 了解:<可视化:VISUAL字符视图>[小 v 键]
用途:删除<多行连续字符串>,注意:可适用于<VI和VIM编辑器>
(1) 按[小v]进入<可视化:VISUAL字符视图>
(2) 按[上下左右 键]选择<多行连续字符串>
(3) 按[d 键]删除<多行连续字符串>
★ 了解:<可视化:VISUAL行视图>[shift + 小 v 键]
用途:删除<多行>,注意:可适用于<VI和VIM编辑器>
(1) 按[小v]进入<可视化:VISUAL字符视图>
(2) 按[shift + 小v]进入<可视化:VISUAL行视图>
(3) 按[上下 键]选择<多行>
(4) 按[d 键]删除<多行>
★ 了解:<可视化:VISUAL BLOCK块视图>[ctrl + 小 v 键]
用途1:删除<多行>中的<多列内容>,注意:可适用于<VI和VIM编辑器>
(1) 按[小v]进入<可视化:VISUAL字符视图>
(2) 按[ctrl + 小v]进入<可视化:VISUAL块视图>
(3) 按[上下左右 键]选择<多列内容>
(4) 按[d 键]删除:所选的<多列内容>
用途2:针对<多行>,统一添加<# 注释符>,注意:仅适用于<VIM编辑器>
(1) 按[小v]进入<可视化:VISUAL字符视图>
(2) 按[ctrl + 小v]进入<可视化:VISUAL块视图>
(3) 按[上下左右 键]选择<多列内容>
(4) 按[shift + 小i]进入<插入模式>
(5) 输入<# 注释符>,按[ESC键]结束(多行插入OK)
第六节 recording录制宏(按q键开始,按q键结束)
★ 工作目的:
A: 123 <--- 这一行内容需要改变为 A: "123"
B: 123456 <--- 这一行内容需要改变为 B: "123456"
C: 123456789 <--- 这一行内容需要改变为 C: "123456789"
★ 录制:宏
(1) 光标移到到<准备录制>的<行>
(2) 按[qw]开始录制(这里的w是缓冲器的名称,你也可以指定其他a-z或者0-9中的任一名称)
(3) 按[^],将<光标>移到<行首>
(4) 按[3l],将<光标>左移<3个字符>
(5) 按[小i]进入<插入模式>,输入<"双引号>,按[ESC键]结束<插入模式>
(6) 按[$]
(7) 按[小a]进入<插入模式>,输入<"双引号>,按[ESC键]结束<插入模式>
(8) 按[q]结束录制
★ 重播:宏
(1) 光标移到到<其他行>,按[@w]重播<宏>
第七节 恢复:VI 和 VIM 编辑的文本文件
★ 问题情况1:我们异常关闭vi编辑器,从而造成一部分数据尚未正常的保存,并遗留<.xxx.swp临时交换文件>
★ 问题情况2:同时多个vi编辑器来编辑相同的文件,从而造成冲突,并遗留<.xxx.swp临时交换文件>
★ 处理方法:
♦ 遗留<.xxx.swp临时交换文件>意味着:有一部分数据没有被正常保存,需要予以妥善处理。
♦ 处理的方式:
vi -r 1.txt ## 第一步:恢复数据
rm -f .1.txt.swp ## 第二步:删除swp交换文件