Linux的vi编辑器常见命令总结

news2024/10/7 16:15:41

注:本文中的给定模式或者模式等词中模式所指是指的一个词语并无其他意思。例如给定模式查找定位指的是查找到给定词的定位。

三种方式的关系图

命令方式和插入方式之间可以相互转换,命令方式和ex转义方式也可以相互转换。但是插入方式和ex转义方式之间不可以相互转换。

一、进入和退出vi
1.进入vi

直接输入vi 后面加上文件名即可。例如:vi  example.c

2.退出vi(在命令模式下)

:wq    把编辑缓冲区的内容写到你编辑的文件中,退出编辑器,回到 shell下。

 (其操作过程是,先键入冒号“:”,再键入命令wq。以下命令操作相同。)

:q!     强行退出vi。感叹号(! )告诉vi,无条件退出,丢弃缓冲区内容。

二、插入方式

通过输入vi的插入命令( i )、附加命令( a )、打开命令(o)、替换命令( s )、修改命令( c )或取代命令( r )可以从命令方式进入到输入方式。

由输入方式回到命令方式的办法是按下<Esc>键(通常在键盘的左上角)

三、转义方式

vi和ex编辑器功能是相同的,二者主要区别是用户界面。

在vi 中,命令通常是单个字母,例如a , x , R等。

在ex中,命令是以<Enter>键结束的正文行

为了使用ex转义方式,可输入一个冒号(:)

四、一些文本编辑和操作命令

1.插入命令(insert)

在 i 命令之后输入的内容都插在光标位置之前,光标后的文本相应向右移动。如按下Enter键,就插入新的一行或者换行。

输入 I 命令后在当前行(即光标所在行)的行首插入新增文本,行首是该行的第一个非空白字符。当输入I命令时,光标就移到行首。  

2.附加命令(add)

a  在光标之后插入,光标可在一行的任何位置。

A  在光标所在行的行尾添加文本。

3 .打开命令(open)

o    在光标所在行的下面插入一行。

O    在光标所在行的上面插入一行。

4.文本修改

1)删除字符的命令(键):

    x    删除光标所在的字符

    X    删除光标前面的那个字符

2)删除文本对象的命令(键):

    dd   删除光标所在的整行

    D    从光标位置开始删除到行尾

d<光标移动命令>  从光标位置开始删到由光标移动限定的文本对象的末尾

3)复原命令

  u   如果插入后用u命令,就删除刚插入的正文;如果删除后用它,就相当于又插入刚删除的正文。

  U   把当前行恢复成它被编辑之前的状态,不管你把光标移到该行后对它编辑了多少次。

4)重复命令

  .  重复实现刚才的插入命令或删除命令。

5)取代命令

r命令用随后打入的单个字符取代光标所在的字符

R命令用随后打入的文本取代光标位及其右面的若干字符,每打入一个字符就替代原有的一个字符。

6)替换命令

s(小写)命令用随后打入的正文替换光标所在的字符

S(大写)命令用新打入的正文替换当前行(整行)

5.编辑文件

1)编辑已存文件的最常用方式是:

    $ vi   文件名

2)从某一指定行进入vi。其格式是:  

    $ vi  +行号  文件名

3)从某一指定词进入vi。其格式是:

    $ vi  +/词   文件名

4)编辑多个文件

    可以同时调入多个文件,依次对它们进行编辑。其命令格式是:

      $ vi  文件1  文件2…

   当完成对第一个文件的编辑及存盘(用:w命令)后,输入命令:n就进入第二个文件。 

6.字符串检索

向前检索命令的格式是: /模式〈Enter〉  (命令方式下)

    系统从光标所在行开始向前查找这个模式,找到第一个相匹配的字符串后,光标就停在该模式的第一个字符上。

五、ex命令

1 命令定位

一种办法是指定行号,例如,

      : 20 <Enter>   光标移到第20行的行首。

另一种办法是给定模式,向前或向后查找

      : /this 按回车键

2.w命令

   w(写)命令可把编辑缓冲区中全部或者部分内容写到当前文件或者另外某个文件中。它有以下几种常用形式 :

w文件名——它把所做的修改写回到指定的文件,并显示所写的行数和字符数

w>>文件名——它把缓冲区内容附加到现有文件的末尾,先前文件内容并不被破坏

w!  文件名——它可跳过通常写命令对文件的检查,将缓冲区内容写到系统允许的任何文件上

w  !命令——它将指定的各行写入指定命令中

3.q命令

   q(退出)命令可从vi 中退出来。它有下述五种使用方式:

q——它的功能是退出vi

q!——它的功能是立即从vi 中退出,不保留所做的修改,也不显示任何提示信息

wq文件名——它的功能等价于执行w命令后又执行q命令

wq !文件名——它的功能是忽略执行w命令之前所做的检查

x文件名——如果该文件做过修改,并且尚未写出去,那么这个命令就把缓冲区内容写出去,然后退出vi;否则,只是退出vi。  

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

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

相关文章

Python 小型项目大全 61~65

六十一、ROT13 密码 原文&#xff1a;http://inventwithpython.com/bigbookpython/project61.html ROT13 密码是最简单的加密算法之一&#xff0c;代表“旋转 13 个空格”密码将字母A到Z表示为数字 0 到 25&#xff0c;加密后的字母距离明文字母 13 个空格&#xff1a; A变成N&…

MyBatis 03 -MyBatis动态SQL与分页插件

动态SQL与分页插件 动态SQL与分页插件动态SQL与分页插件1 动态SQL1.1 < sql >1.2 < if >1.3 < where >1.4 < set >1.5 < choose >1.6 < trim >1.7 < foreach >2 mybatis缓存2.1 一级缓存2.2 二级缓存3 分页插件3.1 概念3.2 访问与下…

没有什么壁纸比这里的更绝美精致了吧,我一天换一张

嗨&#xff0c;这里是清安&#xff0c;本章来学习学习获取精美壁纸。视频教程&#xff1a;https://b23.tv/iR7bOFF源码&#xff1a;https://gitee.com/qinganan_admin/reptile-case/tree/master/%E5%A3%81%E7%BA%B8本视频还会有第二期&#xff0c;代码也会有第二份&#xff0c;…

类ChatGPT项目的部署与微调(上):从LLaMA到Alpaca、Vicuna、BELLE

前言 近期&#xff0c;除了研究ChatGPT背后的各种技术细节 不断看论文(至少100篇&#xff0c;100篇目录见此&#xff1a;ChatGPT相关技术必读论文100篇)&#xff0c;还开始研究一系列开源模型(包括各自对应的模型架构、训练方法、训练数据、本地私有化部署、硬件配置要求、微…

Python | 蓝桥杯进阶第三卷——动态规划

欢迎交流学习~~ 专栏&#xff1a; 蓝桥杯Python组刷题日寄 蓝桥杯进阶系列&#xff1a; &#x1f3c6; Python | 蓝桥杯进阶第一卷——字符串 &#x1f50e; Python | 蓝桥杯进阶第二卷——贪心 &#x1f49d; Python | 蓝桥杯进阶第三卷——动态规划 ✈️ Python | 蓝桥杯进阶…

精通Python(基础篇)——流程控制语句

流程控制语句 文章目录流程控制语句1️⃣简介2️⃣条件判断⚜️关系运算符⚜️逻辑运算符⚜️if语句⚜️if...else 语句⚜️if...elif...else语句⚜️match...case3️⃣循环结构⚜️while⚜️while...else语句⚜️for⚜️for...else语句4️⃣退出循环⚜️continue⚜️break1️⃣…

(排序6)快速排序(小区间优化,非递归实现)

TIPS 快速排序本质上是一个分治递归的一个排序。快速排序的时间复杂度是NlogN&#xff0c;这是在理想的情况之下&#xff0c;但是它最坏可以到达N^2。决定快速排序的效率是在单趟排序之后这个key最终落在的位置&#xff0c;越落在中间就越接近二分&#xff0c;越接近2分就越接…

Android创建项目

目录 创建Android项目 配置项目结构 创建安卓模拟器 模拟器运行 HelloWorld 应用 真机运行 HelloWorld 应用 创建Android项目 打开 Android studio 工具&#xff0c;选择Project&#xff0c;选择 New Project 由于现在是教程博客&#xff0c;所以我们随便选择 一个 空 Ac…

JS内置对象2

数组对象&#xff1a; &#xff08;1&#xff09;检测是否为数组&#xff1a; …

【数据结构】第十站:堆与堆排序

目录 一、二叉树的顺序结构 二、堆的概念及结构 三、堆的实现 1.堆的创建 2.堆的各接口实现 四、堆排序 1.堆排序的基本思想 2.堆排序的实现 3.堆排序时间复杂度 四、TOP-K问题 五、堆的完整代码 一、二叉树的顺序结构 二叉树有顺序结构和链式结构&#xff0c;分别使…

Android之adb安装busybox使用wget、telnet等服务

一、adb里面安装busybox BusyBox 是一个集成了三百多个最常用Linux命令和工具的软件。BusyBox 包含了一些简单的工具&#xff0c;例如ls、cat和echo等等&#xff0c;还包含了一些更大、更复杂的工具&#xff0c;例grep、find、mount以及telnet。 1、下载busybox busybox—bi…

有哪些通过PMP认证考试的心得值得分享?

回顾这100多天来艰辛的备考经历&#xff0c;感慨颇多 一&#xff0c;对于pmp的认知 百度百科&#xff1a;PMP&#xff08;Project Management Professional&#xff09;指项目管理专业人士&#xff08;人事&#xff09;资格认证。美国项目管理协会&#xff08;PMI&#xff09;举…

使用 Floyd Warshall 检测负循环

我们得到了一个有向图。我们需要计算图形是否有负循环。负循环是循环的总和为负的循环。 在图形的各种应用中都可以找到负权重。例如,如果我们沿着这条路走,我们可能会得到一些好处,而不是为一条路付出代价。 例子:

PVE相关的各种一键脚本(一键安装PVE)(一键开设KVM虚拟化的NAT服务器-自带内外网端口转发)

PVE 原始仓库&#xff1a;https://github.com/spiritLHLS/pve 前言 建议debian在使用前尽量使用最新的系统 非debian11可使用 debian一键升级 来升级系统 当然不使用最新的debian系统也没问题&#xff0c;只不过得不到官方支持 请确保使用前机器可以重装系统&#xff0c;…

RK3568平台开发系列讲解(驱动基础篇)自动创建设备节点

🚀返回专栏总目录 文章目录 一、自动创建设备节点1.1、创建和删除类函数1.2、创建设备函数二、创建类函数三、创建设备函数沉淀、分享、成长,让自己和他人都能有所收获!😄 📢自动创建设备节点分为两个步骤: 步骤一:使用 class_create 函数创建一个类。步骤二:使用 d…

C++算法初级7——二分查找

C算法初级7——二分查找 文章目录C算法初级7——二分查找在升序的数组上进行二分查找总结应用范围应用二分查找的原理&#xff1a;每次排除掉一半答案&#xff0c;使可能的答案区间快速缩小。 二分查找的时间复杂度&#xff1a;O(log n)&#xff0c;因为每次询问会使可行区间的…

【MyBatis Plus】001 -- MyBatis-Plus快速入门(介绍、QuickStart)

目录 1、了解MyBatis-Plus 1.1 MyBatis-Plus介绍 1.2 代码及文档 1.3 特性 1.4 架构 1.5 作者 2、快速开始 2.1 创建数据库以及表 2.2 创建工程 2.3 MyBatis MP 2.3.1 创建子module 2.3.2 MyBatis实现查询User&#xff08;无Service方法&#xff0c;直接通过Mapper实现查询&am…

海外虚拟主机空间:如何使用CDN加速提升用户体验?

随着互联网的迅速发展和全球化的趋势&#xff0c;越来越多的企业和个人选择海外虚拟主机空间。然而&#xff0c;由于服务器的地理位置和网络延迟等原因&#xff0c;这些网站在国内访问时可能会遇到较慢的加载速度和不稳定的用户体验。为了解决这一问题&#xff0c;使用CDN加速是…

Web漏洞-文件包含漏洞超详细全解(附实例)

目录 一、导图 二、文件包含漏洞 1.脚本代码 2.原理演示 3.漏洞成因 4.检测方法 5.类型分类 三、本地文件包含漏洞的利用 <无限制本地文件包含> <有限制本地文件包含> 四、远程文件包含漏洞的利用 <无限制远程文件包含> <有限制远程文件包含…

开心档之C++ 多线程

C 多线程 目录 C 多线程 创建线程 终止线程 实例 实例 实例 向线程传递参数 实例 连接和分离线程 实例 std::thread 实例 多线程是多任务处理的一种特殊形式&#xff0c;多任务处理允许让电脑同时运行两个或两个以上的程序。一般情况下&#xff0c;两种类型的多任务…