15 - 掌握 vi/vim 文本编辑器

第一节 了解:VI 和 VIM 两种文本编辑器

★ VI 和 VIM 是什么?

vivim 都是 Linux 中最常用的、最基本的、CLI命令行环境中的文本编辑器,类似于Windows的记事本。
vimvi 的升级版,如未安装,则安装方法是: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交换文件
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值