Linux 之 vi 文本编辑器(二)

news2024/11/23 15:26:33

1、文本编辑器简介

Linux 中最常用的文本编辑器:

vi:类 Unix 系统中默认的文本编辑器
vim:vi 编辑器的增强版本,习惯上也称 vi

vi 文本编辑器的作用和特性:

vi 可以执行插入、删除、查找、替换等众多文本操作,而且用户可以根据自己的需要对其进行定制。
vi 只是一个文本编辑器,不能排版。
vi 没有菜单,只有命令。

2、vi 的三种工作模式

命令模式(command mode),或叫一般模式
插入模式(insert mode),或叫编辑模式
末行模式(last line mode),或叫命令行模式
在这里插入图片描述

3、vi 常用操作命令

1、插入命令

在命令模式下进行以下操作:
i -> 在光标前插入
I -> 在当前行首插入
a -> 在光标后一位开始插入
A -> 在当前行尾插入
o -> 在当前行下面插入一个新行
O -> 在当前行上面插入一个新行

2、定位命令

在命令模式下进行以下操作
h、方向左键 -> 左移一个字符
l、方向右键 -> 右移一个字符
j、方向下键 -> 下移一行
k、方向上键 -> 上移一行
$ -> 移至当前行行尾
0 -> 移至当前行行首
gg -> 移到第一行行首
G -> 移到最后一行行首
nG -> 移到第n行行首
在末行模式下进行以下操作:
:set nu -> 显示行号
:set nonu -> 隐藏行号
:n -> 移至第n行

3、删除命令

在命令模式下进行以下操作:
x -> 删除光标所在的文字
nx -> 删除光标后面的n个字符
X -> 删除光标前面的一个字符
nX -> 删除光标前面的n个字符
dd -> 删除光标所在行
ndd -> 删除从光标所在行开始向下数n行

4、复制和剪切命令

在命令模式下进行以下操作:
yy、Y -> 复制当前行
nyy、Y -> 复制从当前行开始以下n行
p -> 粘贴在当前光标所在行下
P -> 粘贴在当前光标所在行上

5、替换和取消命令

在命令模式下进行以下操作:
r -> 替换光标所在处的第一个字符
R -> 进入替换模式,从光标所在处开始替换字符,按 ESC 结束
u -> (undo缩写)撤销上一步操作
在末行模式下进行以下操作:
s -> (substitute缩写)搜寻某行列范围
g -> (global缩写)搜寻整个编辑缓冲区的资料
例子:
:%s/old/new/g -> 将文件中所有的‘old’替换成‘new’
:10,20s/old/new -> 将第10行至第20行出现‘old’的地方替换成‘new’
:%s/^/hi/g -> 在所有行的行首插入‘hi’
:%s/$/googbye/g -> 在所有行的行尾添加‘goodbye’

6、保存和退出命令

在末行模式下进行以下操作:
:w -> 保存修改
:q -> 退出
:wq -> 保存修改并退出
:q! -> 强制退出
:wq! -> 保存并强制退出

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

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

相关文章

网络计算模式复习(四)

MapReduce MapReduce分布式处理技术、分布式的文件系统GFS、结构化的BigTable存储系统是Google的三个核心技术。 Map-Reduce:用于大规模数据集的并行计算。 (分而治之)将要执行的问题拆解成Map(映射)和Reduce&#x…

SpringBoot整合FreeMarker

一、FreeMarker简述 在线文档:http://freemarker.foofun.cn/ FreeMarker 也是一款模板引擎技术,它是一种基于模板和要改变的数据,并用来生成输出文本(HTML网页,电子邮件,配置文件,源代码等)的通用工具。当然…

创建一个react项目

文章目录 1:命令行输入2:在vs的终端中输入npm start 来启动项目3:删除src目录中的干扰项4:去掉index.js中的严格模式节点JSX介绍JSX中使用js表达式原生js调用三元运算符列表渲染条件渲染三元表达式逻辑&&运算 分支逻辑类名…

Setting up SSH Host ...问题解决

一、问题可能原因: 网速问题导致下载过慢,超时 二、解决方式:手动下载安装 1、确定VSCode commit id,如下图所示 2、拼接请求,下载vscode server包 Arm:https://update.code.visualstudio.com/commit:换…

【AUTOSAR】【通信安全】CRC

目录 一、概述 二、功能说明 2.1 通用行为 2.2 8位CRC计算 2.2.1 8位SAE J1850 CRC计算 2.2.2 8位0x2F多项式CRC计算 2.3 16位CRC计算 2.3.1 16位CCITT-FALSE CRC16 2.3.2 16位0x8005多项式CRC计算 2.4 32位CRC计算 2.4.1 32位以太网CRC计算 2.4.2 32位0xF4ACFB13多…

AIGC产业研究报告 2023——图像生成篇

易观:今年以来,随着人工智能技术不断实现突破迭代,生成式AI的话题多次成为热门,而人工智能内容生成(AIGC)的产业发展、市场反应与相应监管要求也受到了广泛关注。为了更好地探寻其在各行业落地应用的可行性…

jvm之常用命令行工具

写在前面 本文已起看下给我们的Java程序看病常用到的工具都有哪些,通过工具得到指标,通过指标分析病情,从而给出对应的治疗方案。 1:jps/jinfo 用来获取运行的jvm进程信息,一般我们使用该命令来获取进程号&#xff…

CTF权威指南 笔记 -第二章二进制文件- 2.4 -动态链接

目录 静态文件的缺点 动态链接 位置无关代码 延迟绑定 _dl_runtime_reslove 函数定义 深入审视 静态文件的缺点 随着可执行文件的增加 静态链接带来的浪费空间问题就会愈发严重 如果大部分可执行文件都需要glibc 那么在链接的时候就需要把 libc.a链接进去 如果一个libc…

Spark大数据处理讲课笔记3.6 RDD容错机制

文章目录 零、本讲学习目标一、RDD容错机制(一)血统方式(二)设置检查点方式 二、RDD检查点(一)RDD检查点机制(二)与RDD持久化的区别(三)RDD检查点案例演示 三…

Matlab 多项式拟合

一、线性 1、多项式 corrcoef函数 corrcoef函数用来计算矩阵相关系数。 (1)、corrcoef(x):若x为一个矩阵,返回的则是一个相关系数矩阵。 (2)、corrcoef(x,y):计算列向量x、y的相关系数,要求x、y具有相等的元素个数。如果x、y是矩…

2023河南土著双非硕士——毕业季秋招春招就业经验分享(仅限于在河南找工作,毕业想留河南)

作为一名河南土生土长的人,本硕皆就读于河南某双非一本,是一个实打实的河南土著,河南作为互联网就业的贫困环境,相较于CSDN博客上那么多动不动就腾讯、阿里、字节等大厂的就业经验分享,我更想分享一下我在河南省内找工…

百度文心一言正式亮相,数说故事受邀成为首批内测企业

3月16日下午,百度在北京召开新闻发布会,正式推出基于百度新一代大语言模型的生成式AI产品——文心一言,百度创始人、董事长兼首席执行官李彦宏现场展示了文心一言在文学创作、商业文案创作、数理推算、中文理解、多模态生成五个使用场景中的综…

卖期权的时候,我们在卖什么?

一直在思考一个问题,卖期权到底是怎么回事?卖实值期权、平值期权、虚值期权背后的本质有什么区别?卖近期的和远期的期权背后的本质又是什么?我们用沪深300指数期权来研究一下。 我们先从数据上来直观感受一下。上面这个表格是2020-12-09日这…

基于R语言的贝叶斯时空数据模型实践技术

时间-空间数据(以下简称“时空数据”)是最重要的观测数据形式之一,很多科学研究的数据都以时空数据的形式得以呈现,而科学研究目的可以归结为挖掘时空数据中的规律。另一方面,贝叶斯统计学作为与传统统计学…

【OpenCV】 2D-2D:对极几何算法原理

2D-2D匹配: 对极几何 SLAM十四讲笔记1 1.1 对极几何數學模型 考虑从两张图像上观测到了同一个3D点,如图所示**。**我们希望可以求解相机两个时刻的运动 R , t R,t R,t。 假设我们要求取两帧图像 I 1 , I 2 I_1,I_2 I1​,I2​之间的运动,设第一帧到第二帧的运动为…

MiniGPT-4部署过程

文章目录 项目背景部署过程环境配置与文件准备部署推理报错1报错2 项目背景 2023年4月19日,开源项目MiniGPT-4发布,该项目是由KAUST(沙特阿卜杜拉国王科技大学),是几位博士开发的。 项目地址:https://gith…

Spark大数据处理讲课笔记3.4 理解RDD依赖

文章目录 零、本讲学习目标一、RDD依赖二、窄依赖(一)map()与filter()算子(二)union()算子(三)join()算子 三、宽依赖(一)groupBy()算子(二)join()算子&#…

字符设备驱动

字符设备就是按字节流进行读写的设备,读写数据分先后顺序,如点灯,IIC,SPI,LCD等都是字符设备,这些设备的驱动就叫字符设备驱动。 include/linux/fs.h中 file_operations 结构体为内核驱动操作函数集合&…

如何关闭tomcat?tomcat端口号被占用怎么办

我tomcat一跑就报被占用怎么办?我没开tomcat呀!! 这种情况一般是你上一次打开tomcat没有关tomcat服务就关闭了变成软件(如强行关闭正在运行tomcat的idea),这样你在开tomcat就会显示端口号占用了&#xff0…

API 渗透测试从入门到精通系列文章(上)

导语:这是关于使用 Postman 进行渗透测试系列文章的第一部分。 这是关于使用 Postman 进行渗透测试系列文章的第一部分。我原本计划只发布一篇文章,但最后发现内容太多了,如果不把它分成几个部分的话,很可能会让读者不知所措。 所…