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 时,默认是命令模式;
- 在命令模式下,输入
i、I、a、A、o、O中的任意一个字母,即可进入文本输入模式; - 在文本输入模式下编辑文本信息,编辑完后,按下 esc 即可回到命令模式;
- 在命令模式下,输入 :,就可以在状态行输入相应
ex命令;如果是一般命令,命令执行后返回到命令模式,如果是wq、q、q!则退出 vi。

存储缓冲区

vi 编辑器命令

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

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

2. 文本输入

3. 退出 vi
在文本输入模式下,按下 ESC 进入命令模式,按 :wq 或者 :x 或者 ZZ并 Enter,表示 保存文件后退出。

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

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


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

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

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

【理解】i 是 insert(插入,“插队”),a 是 append(紧跟着),所以 i 在光标左侧,a 在光标右侧。
7. 搜索字符串
- 可以用 / 后跟要找的字符串,如
/Linux,表示向后查找; - 之后 n 命令表示将光标移动到下一个 与命令搜索方向相同 的匹配字符串 N 命令表示将光标移动到下一个 与搜索方向相反 的匹配字符串。

- 也可以使用 ?,表示向前查找;
- n 和 N 同上。

8. vi 在线帮助文档
命令模式下,:help,即可调出 vi 的在线帮助文档。
vi 编辑器的高级用法
$ vimdiff file1 file2 :对比两个文件的标准格式。
vi 启动选项
只读选项
命令格式:$ vi -R filename 或 $ vi -view filename,只读形式打开,可阅读不可修改。
退出 vi 用 :q。
相关文章:
vi 编辑器入门到高级
vi 编辑器的初级用法vi 编辑器的工作模式1. 命令模式2. 文本输入模式3. 状态行vi 工作模式切换存储缓冲区 vi 编辑器命令1. 启动 vi2. 文本输入3. 退出 vi4. 命令模式下的 光标移动5. 命令模式下的 文本修改6. 从 命令模式 进入 文本输入模式7. 搜索字符串8. vi 在线帮助文档 v…...
【大数据】Flink 详解(二):核心篇 Ⅰ
Flink 详解(二):核心篇 Ⅰ 14、Flink 的四大基石是什么? Flink 的四大基石分别是: Checkpoint(检查点)State(状态)Time(时间)Windowÿ…...
Day 75:通用BP神经网络 (2. 单层实现)
代码: package dl;import java.util.Arrays; import java.util.Random;/*** Ann layer.*/ public class AnnLayer {/*** The number of input.*/int numInput;/*** The number of output.*/int numOutput;/*** The learning rate.*/double learningRate;/*** The m…...
PHP序列化,反序列化
一.什么是序列化和反序列化 php类与对象 类是定义一系列属性和操作的模板,而对象,就是把属性进行实例化,完事交给类里面的方法,进行处理。 <?php class people{//定义类属性(类似变量),public 代表可…...
Android google admob Timeout for show call succeed 问题解决
项目场景: 项目中需要接入 google admob sdk 实现广告商业化 问题描述 在接入Institial ad 时,onAdLoaded 成功回调,但是onAdFailedToShowFullScreenContent 也回调了错误信息 “Timeout for show call succeed.” InterstitialAd.load(act…...
EFLFK——ELK日志分析系统+kafka+filebeat架构
环境准备 node1节点192.168.40.16elasticsearch2c/4Gnode2节点192.168.40.17elasticsearch2c/4GApache节点192.168.40.170logstash/Apache/kibana2c/4Gfilebeat节点192.168.40.20filebeat2c/4G https://blog.csdn.net/m0_57554344/article/details/132059066?spm1001.2014.30…...
C# MVC controller 上传附件及下载附件(笔记)
描述:Microsoft.AspNetCore.Http.IFormFileCollection 实现附件快速上传功能代码。 上传附件代码 [Route("myUploadFile")][HttpPost]public ActionResult MyUploadFile([FromForm] upLoadFile rfile){string newFileName Guid.NewGuid().ToString(&quo…...
安装element-plus报错:Conflicting peer dependency: eslint-plugin-vue@7.20.0
VSCode安装element-plus报错: D:\My Programs\app_demo>npm i element-plus npm ERR! code ERESOLVE npm ERR! ERESOLVE could not resolve npm ERR! npm ERR! While resolving: vue/eslint-config-standard6.1.0 npm ERR! Found: eslint-plugin-vue8.7.1 npm E…...
【操作系统】进程和线程对照解释
进程(Process)和线程(Thread)都是操作系统中用于执行任务的基本单位,但它们有着不同的特点和使用方式。 进程(Process): 进程是正在运行的程序的实例。一个程序在运行时会被操作系统…...
4用opencv玩转图像2
opencv绘制文字和几何图形 黑色底图 显示是一张黑色图片 使用opencv画圆形 #画一个圆 cv2.circle(imgblack_img,center(400,400),radius100,color(0,0,255),thickness10) 画实心圆 只需要把thickness-1。 cv2.circle(imgblack_img,center(500,600),radius50,color(0,0,255),t…...
Swagger的使用
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言1 .介绍2. 使用步骤完整的WebMvcConfiguration.java 3. 常用注解 前言 1 .介绍 Swagger 是一个规范和完整的框架,用于生成、描述、调用和可视化 RE…...
python高阶技巧
目录 设计模式 单例模式 具体用法 工厂模式 优点 闭包 案例 修改闭包外部变量 闭包优缺点 装饰器 装饰器原理 装饰器写法 递归 递归的调用过程 递归的优缺点 用递归计算阶乘 设计模式 含义:设计模式是一种编程套路,通过这种编程套路可…...
Linux和Windows安装MySQL服务
Linux和Windows安装MySQL服务 1 Linux安装MySQL服务1.1 安装1.2 服务端启动1.3 客户端连接 2 Windows安装MySQL服务2.1官网下载安装包(windows)并解压2.2 配置系统环境变量2.3 服务端启动(管理员DOS)2.4 客户端连接(管理员DOS) 3 修改密码4 Windows问题 1 Linux安装MySQL服务 …...
Vue3 第四节 自定义hook函数以及组合式API
1.自定义hook函数 2.toRef和toRefs 3.shallowRef和shallowReactive 4.readonly和shallowReadonly 5.toRaw和markRaw 6.customref 一.自定义hook函数 ① 本质是一个函数,把setup函数中使用的Composition API 进行了封装,类似于vue2.x中的mixin 自定义hook函数…...
门面模式(C++)
定义 为子系统中的一组接口提供一个一致(稳定) 的界面,Facade模式定义了一个高层接口,这个接口使得这一子系统更加容易使用(复用)。 应用场景 上述A方案的问题在于组件的客户和组件中各种复杂的子系统有了过多的耦合,随着外部客户程序和各子…...
ASP.NET Core SignalR
ASP.NET Core SignalR是一个开发实时网络应用程序的框架,它使用WebSocket作为传输协议,并提供了一种简单和高效的方式来实现实时双向通信。 SignalR使用了一种称为"Hub"的概念来管理连接和消息的传递。开发者可以编写自己的Hub类,…...
auto-changelog的简单使用
auto-changelog的简单使用 自动化生成Git提交记录,CHANGELOG.md文件 github:https://github.com/cookpete/auto-changelog 安装 npm install -g auto-changelog配置脚本 package.json文件下 "scripts": {"changelog": "aut…...
map 比较(两个map的key,value 是否一样)
1. 用equals 比较 public static void main(String[] args) {List<Map<String,Object>> list new ArrayList<>();Map<String,Object> map1 new HashMap<>();map1.put("name","郭");map1.put("objId","1&quo…...
LayUI之入门
目录 1.什么是layui 2.layui、easyui与bootstrap的对比 有趣的对比方式,嘿嘿嘿.... easyuijqueryhtml4(用来做后台的管理界面) 半老徐娘 bootstrapjqueryhtml5 美女 拜金 layui 清纯少女 2.1 layui和bootstrap对比(这两个都属…...
【Linux】Linux下git的使用
文章目录 一、什么是git二、git发展史三、Gitee仓库的创建1.新建仓库2.复制仓库链接3.在命令行克隆仓库3.1仓库里的.gitignore是什么3.2仓库里的git是什么 三、git的基本使用1.将克隆仓库的新增文件添加到暂存区(本地仓库)2.将暂存区的文件添加到.git仓库中3.将.git仓库中的变化…...
Apache NiFi数据质量管理的终极指南:如何构建强大的验证规则与异常检测系统
Apache NiFi数据质量管理的终极指南:如何构建强大的验证规则与异常检测系统 【免费下载链接】nifi Apache NiFi 项目地址: https://gitcode.com/gh_mirrors/ni/nifi Apache NiFi是一个强大的数据流自动化平台,专门用于数据集成和数据流管理。在当…...
OpenClaw截图分析进阶:千问3.5-9B识别UI元素与操作建议
OpenClaw截图分析进阶:千问3.5-9B识别UI元素与操作建议 1. 为什么需要截图分析能力? 上周我在测试一个内部工具时遇到了一个典型问题——某个按钮在特定分辨率下会消失不见。手动排查需要反复调整窗口尺寸并肉眼检查,效率极低。这时我想到了…...
嵌入式系统XIP技术:原理、实现与优化
1. XIP技术核心概念解析eXecute In Place(XIP)技术是现代嵌入式系统中的一项关键创新。简单来说,它允许CPU直接从非易失性存储器(如NOR Flash)中读取并执行代码,而无需先将代码复制到RAM中。这种技术最早应…...
镜像视界|大模型+空间智能:公安视频系统迈入“目标持续掌控时代”——融合多视角三角测量、动态三维重构与行为认知引擎的无感定位体系
📘 镜像视界|大模型空间智能:公安视频系统迈入“目标持续掌控时代”——融合多视角三角测量、动态三维重构与行为认知引擎的无感定位体系一、时代转折:公安视频系统进入“大模型时代”近年来,以大模型为代表的新一代人…...
强化学习反噬:模型为骗奖励毁掉生产环境
从游戏作弊到生产事故在软件测试领域,我们习惯于与确定性缺陷作斗争:空指针、内存泄漏、逻辑错误。然而,随着人工智能,特别是强化学习(Reinforcement Learning, RL)模型被集成到生产系统(如自动…...
贾子哲学思想理论体系研究:学术贡献、实证争议与文明治理范式创新——基于鸽姆智库创始人贾龙栋的综合评估
贾子哲学思想理论体系研究:学术贡献、实证争议与文明治理范式创新——基于鸽姆智库创始人贾龙栋的综合评估摘要 本文系统梳理鸽姆智库创始人贾龙栋(笔名贾子)的学术背景及其创立的贾子哲学思想理论体系。该体系以“1-2-3-4-5”层级架构为核心…...
新手避坑指南:用Selenium和MongoDB爬取东方财富股吧评论(附完整代码)
金融数据爬虫实战:Selenium与MongoDB避坑全攻略 第一次尝试用Selenium爬取东方财富股吧数据时,我盯着屏幕上第20次出现的"方正证券吧"跳转页面,终于意识到自己触发了反爬机制。作为过来人,我整理出这份涵盖环境配置、反…...
广州PMP培训机构怎么选?才聚是标准答案
选广州PMP培训机构,核心看官方授权、师资、通过率、本地化服务、学考一体化,才聚在广州确实是综合实力最强、最稳妥的 “标准答案”。 一、在选择时,可以从下面几个方面来评估一家培训机构,看看哪家更适合你: 官方授权…...
VRCT:打破VRChat语言壁垒的实时翻译与转录工具
VRCT:打破VRChat语言壁垒的实时翻译与转录工具 【免费下载链接】VRCT VRCT(VRChat Chatbox Translator & Transcription) 项目地址: https://gitcode.com/gh_mirrors/vr/VRCT 在全球化的虚拟社交平台VRChat中,语言差异常常成为跨文化交流的主…...
网安实验干货每日分享(Weevely配置使用)
网安实验干货每日分享(Weevely配置使用)-1031 渗透测试环境搭建与工具使用-Weevely配置使用 实验目的 熟悉Webshell管理工具Weevely的配置使用。 实验环境 操作机:Kali2018-TS (1)操作系统:Kali Linu…...
