vi编辑器的常用方法

news2024/11/24 5:57:45

一、背景描述

        在我们连接操作Linux服务器的时候,需要对其配置文件等内容进行一些增删改的操作,一般情况下我们直接使用Linux系统自带vi编辑器进行相应的操作,熟悉vi的常用功能对于我们编辑一些较大的文件效率能够有所提升,使用起来更加得心应手。

二、vi编辑器常用方法

2.1、vi编辑器介绍

        vi编辑器(类似Windows的文本编辑器)对文件内容进行操作【vi 文件名称+文件后缀名】即可打开文件。

Vi编辑器介绍
序号vi编辑器的模式模式说明
1常规模式

打开文件后默认是常规模式,在常规模式中可以使用各种快捷键,帮我们快速编辑文件。比如:快速按下键盘的D键2次(dd)就是删除当前光标所在整行的数据;

2编辑模式需要先切换为英文输入法,然后按i、o、a这三个键中的任意一个键都可以进入到编辑模式,这样才能向文件中写内容,内容写完之后,需要回到常规模式(在编辑模式中直接按下esc键即可回到常规模式
 
3命令模式

在常规模式时按:(英文的冒号)进入命令模式,命令模式按esc回到常规模式,命令模式下输入q然后按下Enter键(回车)表示退出文件。

2.2、vi编辑器的命令模式 

        使用【vi 文件名称】打开文件后进入常规模式后,此时在输入英文的冒号(:)即可进入命令模式,此次如果要退出命令模式只用按下键盘的ESC键即可退出。

vi编辑器的命令模式
序号命令模式命令示例和说明
1:set number

给文件中的每一行都添加上行号,方便查看内容所属行和对应的操作

2:行号

光标跳转到指定行

【:5】表示光标跳转到第5行

3/需要搜索的内容

从当前光标位置开始向后搜索内容,按下键盘的【n】是向下搜索,按下键盘的【N】向上搜索

【/Sqlserver】表示搜索文件中含有Sqlserver的内容

4?需要搜索的内容

从当前光标位置开始向后搜索内容,按下键盘的【n】是向下搜索,按下键盘的【N】向上搜索

5:行号s/需替换的旧值/需替换为的新值/g

使用新值替换指定行号的旧值内容

【:6s/Running/测试运行/g】表示将6行数据中的Running内容替换为测试运行

6:开始行号,结束行号s/需替换的旧值/需替换为的新值/g

使用新值替换开始行号到结束行号的旧值内容($s表示最后一行)

【:7,19s/excute/测试执行/g】表示从7行开始到19行中包含excute的内容都替换为测试执行

7:%s/需替换的旧值/需替换为的新值/g

搜索整个文件,并将所有内容使用新值替换指定行号的旧值内容

【:%s/Loading/测试加载/g】表示将整个文件中所有的Loading替换为测试加载

8:%s/需替换的旧值/需替换为的新值/gc搜索整个文件,并将所有内容使用新值替换指定行号的旧值内容,且每次替换前都确认是否替换【y】表示替换【n】表示不替换【a】表示全部替换
9:q退出不保存
10:q!强制退出不保存
11:wq保存并退出
12:wq!强制保存并退出

2.3、vi编辑器的常规模式

        使用【vi 文件名称】打开文件后进入常规模式后,我们可以对文件内容进行查看移动光标等操作(如:向下翻页,向上翻页、跳转到文件头,文件尾、跳转到当前行的第一个字符、最后一个字符等操作)

vi编辑器的常规模式
序号常规模式命令说明
1ctrl+f向下翻一页
2ctrl+b向上翻一页
3ctrl+u向上翻半页
4ctrl+d向下翻半页
5gg跳转到文件的头部开始位置
6G跳转到文件的尾部位置(对应的按键是:shift+g)
70跳转到当前光标所在的行的开始位置(不论该行是否有缩进空格等内容)
8^跳转到当前光标所在行的第一个字符位置(对应的按键是:shift+6)
9$跳转到当前光标所在行的最后一个字符位置(对应的按键是:shift+4)
10行号gg跳转到指定行
11行号G跳转到指定行(对应的按键是:shift+g)

2.4、vi编辑器的常规模式删除和复制

         使用【vi 文件名称】打开文件后进入常规模式后,需要对文件内容进行一些删除和复制操作,除了进入编辑模式移动光标和delete键操作外,还有一些快捷命令操作,如下列表所示:

vi编辑器常规模式下的删除和复制
序号常规模式的命令说明
1x按一下x键则删除当前光标所在位置的一个字符
2需删除的字符数x

删除当前光标所在位置后的字符数

(如:6x 就表示删除当前光标所在位置后的6个字符)

3u撤销刚才的操作
4dd删除光标所在行的数据(其实dd操作是剪切)
5dw删除当前光标所在位置的一个单词
6yy复制当前光标所在行数据内容
7需复制的数据行数yy

复制当前光标所在行开始及其下面的行数数据内容

(如:6yy 表示从光标所在行开始下面的5行数据共6行数据内容到粘贴板中)

8小p将粘贴板的内容粘贴到当前光标所在行的下面
9大P将粘贴板的内容粘贴到当前光标所在行的上面

2.5、vi编辑器的编辑模式

   使用【vi 文件名称】打开文件后进入常规模式后,

1、按下键盘的【i】键是进入编辑模式且光标就停留在常规模式下的位置;

2、按下键盘的【o】键是进入编辑模式且光标切换到下一行的开始位置;

3、按下键盘的【a】键是进入编辑模式且光标就停留在常规模式下后一个位置;

同时可以使用上下左右的箭头键盘移动光标(或者H、I、J、K键代表左下上右移动);可以使用【DELETE】键或【←】键删除内容。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【设计模式】行为型-策略模式

策略模式,如春风吹过,随心所欲,变幻无穷,每一丝风都是一种选择。 文章目录 一、订单处理二、策略模式三、策略模式的核心组成四、运用策略模式五、策略模式的应用场景六、小结推荐阅读 一、订单处理 场景假设:有一个…

Python网络爬虫实战6—下一页,模拟用户点击,切换窗口

【前期提要】感兴趣的可以看看往期文章哈~ Python网络爬虫5-实战网页爬取 Python网络爬虫4-实战爬取pdf Pyhon网络爬虫3-模拟用户点击 Python网络爬虫实战2-下载url下的pdf Python网络爬虫基础1 1.需求背景 针对长虹美菱电器说明书网页形式,编写爬虫代码&#xff…

数通云网架构师涨薪班毕业都有哪些工作企业和岗位?

数通云网架构师涨薪班课程学完后,学员具备全行业全场景交付数通项目的能力,胜任企业网,广域网,数据中心网络等各种网络项目的交付能力,技术能力一项能够匹配年薪达30w-40w以上网络工程师岗位。 与誉天进行人才培养&…

Swagger2及常用校验注释说明

Api(value "后台用户管理") RestController RequestMapping("bossuser") public class BossUserController {ApiOperation(value "测试接口")PostMapping("test")public String testUser(Valid RequestBody TestUser user) {LOG.inf…

大数据------额外软件、插件及技术------Linux(完整知识点汇总)

Linxu 不同领域的主流操作系统 桌面操作系统 WindowsMAac OSLinux 服务器端操作系统 UNIX(付费)LinuxWindows Server(付费) 移动设备操作系统 Android(基于Linux开源)IOS(不开源) 嵌…

电脑桌面便签怎么添加,桌面备忘录软件哪个简单又好用?

在日常的工作或学习中,我们经常需要记事、备忘。这时,一个简单实用的桌面便签工具就显得尤为重要了。那么,电脑桌面便签怎么添加?又有哪些桌面备忘录软件既简单又好用呢? 首先,关于如何添加电脑桌面便签。…

vue如何引入图标

方法1&#xff1a;iconify/vue pnpm add iconify/vue -D 网址&#xff1a;https://icon-sets.iconify.design/ 使用哪个需要安装 如下截图,安装指令&#xff1a; > npm install iconify/icons-gg在使用的页面引入 import { Icon } from “iconify/vue”; <template>…

CODESYS+EtherCAT+X86/ARM硬件平台:高性能运动控制的标配,支持定制

支持的硬件标准与定制平台&#xff1a; X86:INTEL ARM: RK3568/RK3588/TI/NXP/树莓派/全志T3/A40i等 前段时间分享了施耐德基于CODEYS开发的首款支持EtherCAT总线的运动控制器&#xff0c;CODESYSEtherCATX86硬件平台&#xff1a;高性能运动控制的标配。 CODESYS第一次接触还…

【银河麒麟】unzip程序卡住,处理机制详解,附代码

1.服务器环境以及配置 【机型】 处理器&#xff1a; HUAWEI,Kunpeng 920 内存&#xff1a; 400G 【内核版本】 4.19.90-23.18.v2101.ky10.aarch64 【OS镜像版本】 银河麒麟高级服务器操作系统V10-SP1-0711-arm 【第三方软件】 docker 2.问题现象描述 一台k8s服务器…

Camera2内存泄漏修复

最近公司想要使用Camera2来替换线上的旧版相机&#xff0c;功能调研过程中发现Camera2在很多机器上都会有奇怪的内存泄漏&#xff0c;比较明显的时候可能有100M&#xff0c;比较常见的是表现为内存释放不及时&#xff08;上涨一段时间后会有一次下降&#xff09;&#xff0c;这…

Web渗透:XXE-XML外部实体漏洞

XML External Entity (XXE) 漏洞是一种注入攻击&#xff0c;利用不安全的XML解析器来执行各种恶意操作&#xff0c;如读取本地文件、执行远程代码、发起拒绝服务攻击等&#xff1b;此漏洞的根本原因在于XML标准允许在文档中定义外部实体&#xff0c;并在解析时进行解析和替换。…

快储存,分布式文件系统,对象储存

Ceph块存储 镜像快照 快照可以保存某一时间点时的状态数据快照是映像在特定时间点的只读逻辑副本希望回到以前的一个状态&#xff0c;可以恢复快照使用镜像、快照综合示例 rbd create img1 --size 10G 创建镜像rbd ls 查看镜像 rbd info img1 #查看…

使用原子子表创建可重用的子组件

原子子表是一个图形对象&#xff0c;可帮助您在Stateflow图表中创建独立的子部件。原子子表允许&#xff1a; 对具有多个状态或层次结构的图表进行微小更改后&#xff0c;模拟速度更快。 在多个图表和模型中重复使用相同的状态或子表。 易于团队开发&#xff0c;适用于在同一图…

大语言模型在医疗领域的进展、应用和挑战_医疗大语言模型算法csdn

### 概述 本文综述了医学领域大型语言模型&#xff08;LLM&#xff09;的进展、应用和面临的挑战。大型语言模型如ChatGPT在理解和生成人类语言方面显示出了显著的能力&#xff0c;引起了广泛关注。在医学领域&#xff0c;研究人员正致力于利用LLM支持各种医疗任务&#xff0c…

文华财经盘立方博易大师主图指标公式大全源码均线

文华财经盘立方博易大师主图指标公式大全源码均线&#xff1a; N:3; EMA25:EMA(C,25),COLORRED,LINETHICK2; EMA70:EMA(C,70),COLORGREEN,LINETHICK2; EMA450:EMA(C,450),COLORYELLOW,LINETHICK2; CONDA1:EMA25>EMA70&&C>HV(H,6)&&C>EMA450&…

C语言 | Leetcode C语言题解之第179题最大数

题目&#xff1a; 题解&#xff1a; long cmp(int *x, int *y) {unsigned long sx 10, sy 10;while (sx < *x) {sx * 10;}while (sy < *y) {sy * 10;}return sx * (*y) (*x) - sy * (*x) - (*y); }char *largestNumber(int *nums, int numsSize) {qsort(nums, numsSi…

Linux C 程序 【01】最小程序

1.开发背景 基于 RK3568 平台的基础上&#xff0c;编译一个在系统上运行的最小程序。 2.开发需求 由于 RK3568 作为宿主机&#xff0c;在上面编译程序比较慢&#xff0c;所以还是采用在 Ubuntu 下交叉编译后再拷贝到宿主机上运行。 设计实验&#xff1a; 1&#xff09;搭建 M…

数据分析必备:一步步教你如何用matplotlib做数据可视化(14)

1、Matplotlib 图像 Matplotlib包中的图像模块提供加载&#xff0c;重新缩放和显示图像所需的功能。Pillow库支持加载图像数据。Matplotlib仅支持PNG图像。如果本机读取失败&#xff0c;下面显示的命令将回退到Pillow。 此示例中使用的图像是PNG文件&#xff0c;但请记住数据的…

AFLNet入门教学——测试RTSP协议实现Live555(Ubuntu)

1、简介 本文旨在使用AFLNet对RTSP协议实现Live555进行模糊测试。实验环境为&#xff1a;Ubuntu22.04.4AFLNet安装参考&#xff1a;AFLNet入门教学——安装&#xff08;Ubuntu22.04.4&#xff09;-CSDN博客 2、安装Live555 本次实验采取的是live555在2018年8月28日上传的版本…

数据库怎么同步

数据库要怎么同步呢&#xff0c;有很多方法&#xff0c;看你用什么数据库&#xff0c;如果是Sqlserver,你要数据库同步&#xff0c;那么可以使用自带的订阅发布&#xff0c;订阅发布应该是不错的方法&#xff0c;但是我上次要配置双向同步&#xff0c;它的对等发布好像没部署成…