vi 编辑器入门到高级

  • vi 编辑器的初级用法
    • vi 编辑器的工作模式
      • 1. 命令模式
      • 2. 文本输入模式
      • 3. 状态行
      • vi 工作模式切换
      • 存储缓冲区
    • vi 编辑器命令
      • 1. 启动 vi
      • 2. 文本输入
      • 3. 退出 vi
      • 4. 命令模式下的 光标移动
      • 5. 命令模式下的 文本修改
      • 6. 从 命令模式 进入 文本输入模式
      • 7. 搜索字符串
      • 8. vi 在线帮助文档
  • vi 编辑器的高级用法
    • vi 启动选项
      • 只读选项

vi 编辑器的初级用法

UNIX 中的编辑器(文本编辑器)分为两类:行编辑器、全屏编辑器。

在这里插入图片描述

vi 编辑器的工作模式

1. 命令模式

  • 这是启动后默认的模式;
  • 所有输入都被解释为命令,不显示但是被执行。
  • 通过按键删除字、行、段,移动光标以及执行其他操作。
  • ex 命令:按下冒号,在编辑器最后一行(状态行)输入命令,回车结束命令输入,执行命令。

2. 文本输入模式

  • 键盘输入文本字符,屏幕显示用户输入。

3. 状态行

屏幕最底部的一行叫做 状态行,

  • 用于反馈用户操作结果,错误/其他信息在状态行显示;
  • ex 命令也是在状态行实现。

在这里插入图片描述

vi 工作模式切换

  • 用户启动 vi 时,默认是命令模式
  • 在命令模式下,输入 iIaAoO 中的任意一个字母,即可进入文本输入模式;
  • 在文本输入模式下编辑文本信息,编辑完后,按下 esc 即可回到命令模式;
  • 在命令模式下,输入 ,就可以在状态行输入相应 ex 命令;如果是一般命令,命令执行后返回到命令模式,如果是 wqqq! 则退出 vi。

在这里插入图片描述

存储缓冲区

在这里插入图片描述

vi 编辑器命令

在这里插入图片描述

1. 启动 vi

  • 直接在命令行 $ vi ,打开一个空白文件,处于命令模式,当输入完文本退出时必须保存到指定文件,否则不允许退出。
  • :w myfile ,将输入的文本(缓冲区内容)保存到 myfile 中。
  • :wq myfile ,保存文件并退出 vi。

在这里插入图片描述

  • 另一种 $ vi myfirst ,如果文件 myfirst 不存在,则创建一个空白文件,状态行显示 [New File]。如果 myfirst 已经存在,则显示文件文本信息,显示光标位置 行,列

在这里插入图片描述

2. 文本输入

在这里插入图片描述

3. 退出 vi

在文本输入模式下,按下 ESC 进入命令模式,按 :wq 或者 :x 或者 ZZEnter,表示 保存文件后退出

在这里插入图片描述

【总结】命令模式下退出 vi 的方式如下:

在这里插入图片描述

4. 命令模式下的 光标移动

在这里插入图片描述

在这里插入图片描述

5. 命令模式下的 文本修改

在这里插入图片描述

dd 是删除光标所在行,数字 + dd 是删除多行,dw 是删除光标所在的单词。

在这里插入图片描述

6. 从 命令模式 进入 文本输入模式

在这里插入图片描述

【理解】iinsert(插入,“插队”),aappend(紧跟着),所以 i 在光标左侧,a 在光标右侧。

7. 搜索字符串

  • 可以用 / 后跟要找的字符串,如 /Linux,表示向后查找;
  • 之后 n 命令表示将光标移动到下一个 与命令搜索方向相同 的匹配字符串 N 命令表示将光标移动到下一个 与搜索方向相反 的匹配字符串。

在这里插入图片描述

  • 也可以使用 ?,表示向前查找;
  • nN 同上。

在这里插入图片描述

8. vi 在线帮助文档

命令模式下,:help,即可调出 vi 的在线帮助文档。

vi 编辑器的高级用法

$ vimdiff file1 file2 :对比两个文件的标准格式。

vi 启动选项

只读选项

命令格式:$ vi -R filename$ vi -view filename只读形式打开,可阅读不可修改。

退出 vi 用 :q

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/61767.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

TS协议之PES(ES数据包)

TS协议之PAT(节目关联表)TS协议之PMT(节目映射表)TS协议之PES(ES数据包) 该文档已上传:下载地址 1. 概要 1.1 TS数据包(PES)协议数据组成 TSTS头PES头ES。TS&#xf…

Rust 原生支持龙架构指令集

导读近日,Rust 开源社区发布 1.71.0 版本,实现对龙架构(LoongArch)指令集的原生支持。 龙架构操作系统发行版和开发者可基于上游社区源代码构建或直接下载 Rust 开源社区发布的龙架构二进制版本。Rust 开发者将在龙架构平台上获得…

uniapp 格式化时间刚刚,几分钟前,几小时前,几天前…

效果如图: 根目录下新建utils文件夹,文件夹下新增js文件,文件内容: export const filters {dateTimeSub(data) {if (data undefined) {return;}// 传进来的data必须是日期格式,不能是时间戳//将字符串转换成时间格式…

机器学习深度学习——序列模型(NLP启动!)

👨‍🎓作者简介:一位即将上大四,正专攻机器学习的保研er 🌌上期文章:机器学习&&深度学习——卷积神经网络(LeNet) 📚订阅专栏:机器学习&&深度…

vue消息订阅与发布,实现任意组件间通讯

第一步:下载第三方消息订阅与发布库,例如常用的pubsub.js,他可以在任何框架中使用包括vue、react、anglar等等。 命令:npm i pubsub-js 注意是pubsub-js(不是点); 第二步:引入库; import pubsub from pubsub-js 第…

Die2Die(D2D)和chip2chip(C2C)之间的高速互联接口

随着chiplet的兴起,Die2Die的高速互联越来越重要,相比于传统的C2C(chip2chip)的互联,D2D的片间距离很近(10mm量级),且这些小的chip(裸片)最终形成一个封装【多芯片模块(MCM)】。所以D2D的互联信道短&#x…

修改Egohands公开数据集,用于YOLOv5训练通用手部检测模型

〇、背景: 项目需要,需要利用摄像头对人手进行实时监测,最先考虑到的就是简单易用且高效的YOLOv5,很快找到了公开数据集:Egohands EgoHands: A Dataset for Hands in Complex Egocentric Interactions | IU Computer…

【人工智能前沿弄潮】—— SAM系列:SAM从提示生成物体mask

SAM从提示生成物体mask Segment Anything Model(SAM)根据指示所需的对象来预测对象掩码。该模型首先将图像转换为图像嵌入,从而可以从提示中高效地生成高质量的掩码。 SamPredictor类为模型提供了一个简单的接口来提示模型。用户可以首先使…

数据结构日记之《队列的定义》

队列的定义 一、队列的定义和特点二、队列的抽象数据类型定义三、例子 一、队列的定义和特点 队列 (queue) 是一种 先进先出(First In First Out, FIFO) 的线性表。它只允许在表的一端进行插入,而在另一端删除元素。这和日常生活中的排队是一致的,最早进…

uniapp+vue3项目中使用vant-weapp

创建项目 通过vue-cli命令行创建项目 Vue3/Vite版要求 node 版本^14.18.0 || >16.0.0 uni-app官网 (dcloud.net.cn) npx degit dcloudio/uni-preset-vue#vite my-vue3-project打开项目 点击顶部菜单栏终端/新建终端 执行安装依赖指令 yarn install 或 npm install 安装vant…

【uniapp】使用Vs Code开发uniapp:

文章目录 一、使用命令行创建uniapp项目:二、安装插件与配置:三、编译和运行:四、修改pinia: 一、使用命令行创建uniapp项目: 二、安装插件与配置: 三、编译和运行: 该项目下的dist》dev》mp-weixin文件导入微信开发者…

Redisson可重入锁原理

微信公众号访问地址:Redisson可重入锁原理 推荐文章: 1、使用原生Redis命令实现分布式锁 ​ 2、为什么引入Redisson分布式锁? 3、SpringBoot整合多数据源,并支持动态新增与切换(详细教程) 4、SpringBo…