vi编辑器使用

说明:本文介绍vi编辑器使用;

介绍&基础使用

vi编辑器是linux操作系统中最常用的编辑器,使用vi或vim命令启动。vim是vi编辑器的增强版,大多数情况使用vi命令也会打开vim编辑器,为了方便介绍,以下均称vi编辑器。

在介绍vi编辑器的操作之前,首先介绍vi编辑器的三种模式,如下:

在这里插入图片描述

说明:

  • 命令模式:敲vi/vim 文件名进入的就是这个模式,在此模式可以浏览文件内容,输入一些命令,不能编辑内容;

  • 插入模式:编辑模式,可对文件内容进行操作;

  • 尾行模式:光标在窗口尾部,可敲一些复杂的命令,和退出vi编辑器的命令;


以一次简单的使用为例,如下:

(输入vi,后面跟文件名,表示用vi编辑器打开该文件,如果当前目录没有该文件,则编辑完保存会在当前目录创建一个新文件)

vi hello.txt

在这里插入图片描述

打开该文件

在这里插入图片描述

i,进入插入模式,写入“Hello vi”;

在这里插入图片描述

ESC,进入命令模式,再按:(冒号),进入尾行模式,输入wq,表示保存退出;

在这里插入图片描述

敲回车,退出vi编辑器,使用cat命令查看该文件内容,可见内容已写入;

在这里插入图片描述

这样一次简单的vi编辑器使用完成

命令

vi编辑器的强大之处在于有丰富的命令,如下:

命令模式

【插入相关】

a:当前光标后面插入

i:当前光标前面插入

A:当前光标行尾插入

I:当前光标行首插入

o:当前光标往下插入一行,光标在行首

O:当前光标往上插入一行,光标在行首

图示如下:

在这里插入图片描述


【移动相关】

h:光标左移一位;

j:光标下移一位;

k:光标上移一位;

l:光标右移一位;

图示如下:

在这里插入图片描述

使用键盘上的方向键同样有效;


【复制、编辑相关】

yy:复制当前行;

10yy:复制以上10行;

dd:剪切当前行;

10dd:剪切以上10行;

p:粘贴;

10p:粘贴10次;

u:撤销上一次操作


【浏览相关】

ctrl+f:向下翻一页;

ctrl+b:向上翻一页

ctrl+u:向上翻半页

ctrl+d:向下翻半页


【跳转相关】

^:跳转到当前行行首;

$:跳转到当前行行尾;

G:跳转到文件最后一行

gg:跳转到文件首行

100G:跳转到100行


【查找、替换相关】

n:下一个(相对于查询的方向);

N:与n相反方向的下一个;


行尾模式

【跳转相关】

100:跳转到100行


【设置相关】

set number:显示文件行号;

set nu:显示文件行号;

set nonumber:不显示文件行号;

set ic:查找、替换内容不区分大小写;


【查找、替换相关】

/Hello:当前位置向下查找Hello;

?Hello:当前位置向上查找Hello;

s/Hello/nihao:替换当前行第一个Hello字符串为nihao;

s/Hello/nihao/g:替换当前行所有的Hello字符串为nihao;

10,50s/Hello/nihao/g:替换第10~50行内,所有Hello字符串为nihao;

1,$s/Hello/nihao/g:替换当前文件内,所有的Hello字符串为nihao;


其中,s表示替换,最后的g表示global,全局的意思,加上表示每行中有匹配上的字符都替换,不加表示只替换每行中第一个匹配的字符;

如下,将下面的字符串中的l,替换成j;

Hello,vi

  • s/l/j/g:Hejjo,vi(加g,每行匹配的都替换)

  • s/l/j:Hejlo,vi(不加,只替换第一个匹配的)

【退出、保存文件相关】

q:退出,有内容修改会询问;

q!:强制退出,有内容修改会丢失并退出;

w:写入,不退出;

wq:写入,并退出;

wq!:写入,并强制退出;

vi配置文件

可敲下面的命令,打开vi的配置文件,将一些常用的设置写入到配置文件中,如显示行号、查找/替换不区分大小写;

(打开vi编辑器配置文件,注意是在~路径下,如果不是,先cd ~)

vi .vimrc

(写入配置,查看)

在这里插入图片描述

其中:

  • set nu:显示文件行号;

  • syntax on:打开语法高亮;

  • set ic:查找、替换时不区分大小写;

总结

本文介绍了关于vi编辑器的使用,及一些常用命令,参考B站UP主:GeekHour 视频

  • 【GeekHour】30分钟Linux入门教程

关于vi编辑器的使用,纸上得来终觉浅,还是需要手动去敲命令,才能慢慢掌握。

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

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

相关文章

【Web】2024XYCTF题解(全)

目录 ezhttp ezmd5 warm up ezMake ez?Make εZ?мKε? 我是一个复读机 牢牢记住,逝者为大 ezRCE ezPOP ezSerialize ezClass pharme 连连看到底是连连什么看 ezLFI login give me flag baby_unserialize ezhttp 访问./robots.txt 继…

从阿里云崩溃看IT系统非功能能力验证

昨天下午6点左右学员群里有人说阿里云又出问题了,并且还挺长时间没有恢复了。 我也登录了一下,结果登录直接不停地302。如下所示: 做为阿里云重要的基础设施,这一故障影响了。如官方通告的处理时间线: 17:44起&#…

【JavaEE初阶系列】——理解tomcat 带你实现最简单的Servlet的hello world程序(七大步骤)

目录 🚩认识Tomcat 🚩运用Tomcat 🚩Servlet 🎓完成简单的Servlet的hello world程序 🎈创建项目Maven 🎈引入依赖 🎈创建目录 🎈编写代码 🎈打包程序 &#x1…

Go 语言基础(一)【基本用法】

前言 最近心情格外不舒畅,不仅仅是对前途的迷茫,这种迷茫倒是我自己的问题还好,关键它是我们这种普通吗喽抗衡不了的。 那就换个脑子,学点新东西吧,比如 Go? 1、Go 语言入门 介绍就没必要多说了&#xff0…

求矩阵对角线元素之和(C语言)

一、N-S流程图&#xff1b; 二、运行结果&#xff1b; 三、源代码&#xff1b; # define _CRT_SECURE_NO_WARNINGS # include <stdio.h>int main() {//初始化变量值&#xff1b;int i 0;int j 0;int sum 0;int a[3][3] { 0 };//获取数组a的值&#xff1b;printf(&qu…

『大模型笔记』Code Example: Function Calling with ChatGPT

Code Example: Function Calling with ChatGPT 文章目录 一. Code Example: Function Calling with ChatGPT二. 参考文献一. Code Example: Function Calling with ChatGPT from openai import OpenAI from dotenv import load_dotenv import json# --------------------------…

标准汽车试验铁地板的技术要求

在现代科技化发展的工作中&#xff0c;试验平台被广泛使用。铸铁试验平台&#xff08;试验铁地板&#xff09;又叫试验工作平台&#xff0c;听名字大家也不难想象出来这是一款带有箱式体的台面&#xff0c;这是一种有长方形或者圆形又或者正方形的试验工作台。 铸铁试验平台&a…

调用WinPE给现有的Windows做一个备份

前言 前段时间有小伙伴问我&#xff1a;如何让给电脑备份系统。 小白直接告诉他&#xff1a;为啥要备份系统呢&#xff1f;直接给电脑创建一个还原点就好了。 Windows还原点创建教程&#xff08;点我跳转&#xff09; 没想到小伙伴的格局比小白大得多&#xff0c;他说&…

2024年第二十一届 五一杯 (C题)大学生数学建模挑战赛 | 多目标优化问题,深度学习分析 | 数学建模完整代码解析

DeepVisionary 每日深度学习前沿科技推送&顶会论文&数学建模与科技信息前沿资讯分享&#xff0c;与你一起了解前沿科技知识&#xff01; 本次DeepVisionary带来的是五一杯的详细解读&#xff1a; 完整内容可以在文章末尾全文免费领取&阅读&#xff01; 首先&…

编码方式导致的csv文件错误

写入csv文件时&#xff0c;假如出现了csv文件是乱码的情况&#xff0c;那么说明编码方式有问题&#xff0c;需要修改一下编码方式为utf-8-sig。 把编码方式修改一下为encodingutf-8-sig &#xff0c;再次运行就不会是乱码了&#xff0c;可见再读写csv文件时&#xff0c;假如使用…

【报错处理】ib_write_bw执行遇到Found Incompatibility issue with GID types.原因与解决办法

文章目录 拓扑现象根因解决办法解决后效果 拓扑 #mermaid-svg-zheSkw17IeCpjnVA {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-zheSkw17IeCpjnVA .error-icon{fill:#552222;}#mermaid-svg-zheSkw17IeCpjnVA .error…

Python语言零基础入门——模块

目录 一、模块的导入与使用 1.模块的导入 2.模块的使用 二、包的使用 1.包 2.包的使用 三、常见的标准库 1.random的运用举例 2.random小游戏 &#xff08;1&#xff09;石头剪刀布 &#xff08;2&#xff09;猜大小 3.re 4.time库的使用 5.turtle库的使用 6.so…

手把手实现一个简约酷美美的版权声明模块

1. 导语 版权声明在很多网站都有用到&#xff0c;出场率还是很高的。所以今天就实现一个属于自己分风格的版权声明模块&#xff0c;技术上采用原生的前端三剑客: HTMLCSSJavaScript(可能会用到) 比如CSDN的版权声明是这样的 2. 需求分析 先看看成品吧&#xff0c;这篇文字结…

Access to image at ... from origin ... has been blocked

Access to image at ‘http://127.0.0.1:3000/api/getImg?url/uploads/file/20240421/file-1713715007811-logo.png’ from origin ‘http://ggbol.gnway.cc’ has been blocked by CORS policy: The request client is not a secure context and the resource is in more-pri…

【C++】---模板进阶

【C】---模板进阶 一、模版参数1、类型参数2、非类型参数 二、模板的特化1、函数模板的特化2、类模板特化&#xff08;1&#xff09;全特化&#xff08;2&#xff09;偏特化 三、模板分离编译1、模板支持分离编译吗&#xff1f;2、为什么模板不支持分离编译&#xff1f;3、如何…

google search API 获取

登录谷歌云启动服务 首先登录谷歌云Google Cloud: https://console.cloud.google.com/&#xff0c;登录后创建一个项目。 选择创建的项目&#xff0c;进入API库。搜索Google Search。 选择custom Search API并启用。 此外&#xff0c;有个非常具有类似的API-- Google Search …

3D建模在游戏行业的演变和影响

多年来&#xff0c;游戏行业经历了显着的转变&#xff0c;这主要是由技术进步推动的。 深刻影响现代游戏的关键创新之一是 3D 建模领域。 从像素化精灵时代到我们今天探索的错综复杂的游戏世界&#xff0c;3D 建模已成为游戏开发不可或缺的基石。 本文讨论 3D 建模在游戏行业中…

PyVista 3D数据可视化 Python 库 一行代码实现裁剪 含源码

简介&#xff1a; Pyvista是一个用于科学可视化和分析的Python库,使3D数据可视化变得更加简单和易用&#xff1b; 只增加一行代码就可以实现裁剪&#xff1b; 1.效果&#xff1a; 2.代码如下&#xff1a; 加载模型数据&#xff1a; 代码实现&#xff1a; import pyvista a…

查找算法之二分查找

一、算法介绍 二分查找&#xff0c;也称为折半查找&#xff0c;是一种在有序数组中查找特定元素的高效算法。对于包含 n 个元素的有序数组&#xff0c;二分查找的步骤如下&#xff1a; 确定搜索范围&#xff1a;首先&#xff0c;将要查找的元素与数组中间的元素进行比较。如果…

引领农业新质生产力,鸿道(Intewell®)操作系统助力农业机器人创新发展

4月27日至29日&#xff0c;2024耒耜国际会议在江苏大学召开。科东软件作为特邀嘉宾出席此次盛会&#xff0c;并为江苏大学-科东软件“农业机器人操作系统”联合实验室揭牌。 校企联合实验室揭牌 在开幕式上&#xff0c;江苏大学、科东软件、上交碳中和动力研究院、遨博智能研究…