Linux常用工具的使用(2):文本编辑器的使用
实验题目:Linux常用工具的使用(2):文本编辑器的使用
实验目的:
(1)理解文本编辑器vi的工作模式;
(2)掌握文本编辑器的使用方法
实验内容:
(1)阐述vi编辑器的3种工作模式,以及如何实现工作模式的互相转换?
(2)在文本编辑器vi中,实现下列功能,列举出一个例子即可:
1)添加单个字符、多个字符
2)删除单个字符、删除整行文本
3)文本的替换
4)文本的复制和粘贴
5)文本的剪切和粘贴
6)全文关键字查找
7)全文字符串替换
8)保存、另存为、退出
9)同时打开两个文件,实现两个窗口的切换
10)区域复制
11)与shell交互
实验步骤:
(1)阐述vi编辑器的3种工作模式,以及如何实现工作模式的互相转换?
vi编辑器有3种基本工作模式,分别是:
- 命令模式:这是进入vi编辑器后的默认模式。在该模式下,用户可以输入vi命令来管理自己的文档。此时从键盘上输入的任何字符都被当作编辑命令来解释。若输入的字符是合法的vi命令,则vi在接受用户命令之后完成相应的动作。但需要注意的是,所输入的命令并不回显在屏幕上。若输入的字符不是vi命令,vi会响铃报警。任何时候,不管用户处于何种模式,按下Esc键即可进入命令模式。
- 文本输入模式:在命令模式下输入插入命令i、附加命令a、打开命令o、修改命令c、取代命令r或替换命令s都可以进入文本输入模式。在该模式下,用户输入的任何字符都被vi当作文件内容保存起来,并将其显示在屏幕上。在文本输入过程中,若想回到命令模式下,按Esc键即可。
- 末行模式:也称ex转义模式。在命令模式下,用户按“:”键即可进入末行模式下,此时vi会在显示窗口的最后一行(通常也是屏幕的最后一行)显示一个“:”作为末行模式的说明符,等待用户输入命令。多数文件管理命令都是在此模式下执行的(如把编辑缓冲区的内容写到文件中等)。末行命令在执行完后,vi自动回到命令模式。
工作模式的互相转换:
- 从命令模式切换到文本输入模式:输入i(插入)、a(附加)、o(打开新行)等命令。
- 从文本输入模式切换回命令模式:按Esc键。
- 从命令模式切换到末行模式:按“:”键。
- 从末行模式切换回命令模式:执行完末行命令后,vi会自动回到命令模式,或者按Esc键退出末行模式。
(2)在文本编辑器vi中,实现下列功能,列举出一个例子即可:
- 添加单个字符、多个字符:
- 在命令模式下,按i进入文本输入模式,然后输入单个字符或多个字符。
- 删除单个字符、删除整行文本:
- 删除单个字符:在命令模式下,将光标移动到要删除的字符上,按x键。
- 删除整行文本:在命令模式下,按dd键删除当前行。
- 文本的替换:
- 在命令模式下,按r键,然后输入要替换的字符。或者进入末行模式,使用:s/old/new/g命令替换当前行中所有出现的old为new。
- 文本的复制和粘贴:
- 复制:在命令模式下,按yy复制当前行,或按nyy复制从当前行开始的n行。
- 粘贴:在命令模式下,按p键将复制的内容粘贴到当前行的下一行。
- 文本的剪切和粘贴:
- 剪切:实际上,删除操作(如dd)也会将文本剪切到缓冲区中。
- 粘贴:与上述复制后的粘贴操作相同,按p键。
- 全文关键字查找:
- 在命令模式下,按/键,然后输入要查找的关键字,按Enter键开始查找。
- 全文字符串替换:
- 在末行模式下,使用:%s/old/new/g命令替换整个文件中所有出现的old为new。
- 保存、另存为、退出:
- 保存:在末行模式下,输入:w命令。
- 另存为:在末行模式下,输入:w newfilename命令。
- 退出:在末行模式下,输入:q命令。如果文件有未保存的更改,vi会提示保存更改。强制退出不保存可以使用:q!命令。
- 同时打开两个文件,实现两个窗口的切换:
- 在命令行中使用vi -O filename1 filename2命令同时打开两个文件,它们会在垂直分割的窗口中显示。使用Ctrl+w w命令在两个窗口之间切换。
- 区域复制:
- 在命令模式下,使用V(行选择)或Ctrl+v(块选择)命令选择区域,然后按y键复制选择的区域。
- 与shell交互:
- 在末行模式下,使用:!command命令执行shell命令。例如,输入:!ls列出当前目录的内容。
实验体会:
通过本次实验,我深入理解了vi编辑器的工作模式,并掌握了vi编辑器的使用方法。我能够熟练地在vi编辑器中进行文本的添加、删除、替换、复制、粘贴、查找和替换等操作,同时也学会了如何保存文件、退出编辑器以及同时打开多个文件进行编辑。此外,我还了解了如何在vi编辑器中与shell进行交互。这些技能将对我未来的学习和工作产生积极影响。
相关文章:
Linux常用工具的使用(2):文本编辑器的使用
实验题目:Linux常用工具的使用(2):文本编辑器的使用 实验目的: (1)理解文本编辑器vi的工作模式; (2)掌握文本编辑器的使用方法 实验内容: &a…...
【StarRocks】starrocks 3.2.12 【share-nothing】 多Be集群容器化部署
文章目录 一. 集群规划二.docker compose以及启动脚本卷映射对于网络环境变量 三. 集群测试用户新建、赋权、库表初始化断电重启扩容 BE 集群 一. 集群规划 部署文档 https://docs.starrocks.io/zh/docs/2.5/deployment/plan_cluster/ 分类描述FE节点1. 主要负责元数据管理、…...
联想ThinkServer服务器主要硬件驱动下载
联想ThinkServer服务器主要硬件驱动下载: 联想ThinkServer服务器主要硬件Windows Server驱动下载https://newsupport.lenovo.com.cn/commonProblemsDetail.html?noteid156404#D50...
Ansys Zemax Optical Studio 中的近视眼及矫正
近视,通常称为近视眼,是一种眼睛屈光不正,导致远处物体模糊,而近处物体清晰。这是一种常见的视力问题,通常发生在眼球过长或角膜(眼睛前部清晰的部分)过于弯曲时。因此,进入眼睛的光…...
三次握手后的数据传输
一旦三次握手成功完成,TCP连接便正式建立,双方可以开始传输数据。在这个阶段,TCP协议利用其独特的可靠性和流控机制,确保数据的有序、无差错传输。 序列号与确认号:在数据传输过程中,TCP会为每个报文段分配…...
企业OA管理系统:Spring Boot技术实现与案例研究
摘要 随着信息技术在管理上越来越深入而广泛的应用,管理信息系统的实施在技术上已逐步成熟。本文介绍了企业OA管理系统的开发全过程。通过分析企业OA管理系统管理的不足,创建了一个计算机管理企业OA管理系统的方案。文章介绍了企业OA管理系统的系统分析部…...
(免费送源码)计算机毕业设计原创定制:Java+JSP+HTML+JQUERY+AJAX+MySQL springboot计算机类专业考研学习网站管理系统
摘 要 大数据时代下,数据呈爆炸式地增长。为了迎合信息化时代的潮流和信息化安全的要求,利用互联网服务于其他行业,促进生产,已经是成为一种势不可挡的趋势。在大学生在线计算机类专业考研学习网站管理的要求下,开发一…...
Go语言工程测试的基本规则和流程
Go语言工程测试的基本规则和流程 在Go语言的工程实践中,测试是确保软件质量和稳定性的关键环节。本文将深入探讨Go语言中的工程测试,包括单元测试、性能测试和集成测试等,以及它们的编写规则、组织方式和执行流程。 单元测试(Unit Testing) 单元测试是针对软件中最小可…...
阿里云cdn配置记录和nodejs手动安装
cdn 登录阿里云 域名解析权限 开启cdn,接引导流程, 源可以设置 域名或者ip等 配置好域名解析 上传https证书 图片不显示,后端开发需要配置 回源配置的回源协议 ,配置跟随客服端【如果浏览器多次重定向错误,客服或者改…...
PTC在电池中的作用
一、电池安全性的重要性 在现代电子设备中,电池作为能源储存和供应的核心组件,其性能和安全性一直是关注的重点。尤其是在锂离子电池等高能量密度电池的广泛应用中,电池发生过流、过热、短路等问题可能导致电池失效,甚至引发热失控和火灾等安全事故。因此,如何提高电池的…...
嵌入式C语言面试题 - 2024/11/18
欢迎找我进行职业规划,超值的自我投资 -> 嵌入式软件工程师一对一指导 转载请注明来源: 下边代码,x值是? int x10;x 3x%(3); 解析: 初始值:x 10 计算 x % 3: 10 % 3 的结果是 1&#…...
理解原子变量之四:可见性、memory_order_acquire与 memory_order_release
在理解原子变量之二:从volatile到内存序-进一步的认识-CSDN博客里的实例3里面,我们看到,如果在一个线程里修改原子变量done,另一个线程读取done时,就会看到这个变化。这就是原子变量的可见性。其实这个认识是不全面的。…...
requests的session
如果有cookie,能够自动关联,可以使用如下: session对象能够帮我们自动管理和传递cookie,但是后续的请求,必须使用session对象发起 session requests.session() re session.get() re session.post()或 session reque…...
MySQL面试题补
内连接和外连接的区别: ○1.功能和用法不同:内连接是连接两表都满足情况的数据;而外连接是以一边的表为主表,另一个表只显示匹配的行; ○2.用途:内连接一般是用于检索不同表需要根据共同的列值进行匹配的&a…...
Windows系统编程 - 进程遍历
文章目录 前言进程的遍历CreateToolhelp32SnapshotProcess32FirstProcess32Next进程遍历 总结 前言 各位师傅好,我是qmx_07,今天给大家讲解进程遍历的相关知识点 进程的遍历 快照:使用vmware虚拟机的时候,经常需要配置环境服务…...
从零开始创建一个 Vue3+Vite+TS+Eslint项目
一、创建一个最简单的 Vue3 项目 pnpm create vuelatest只设置项目名,其它任何功能都不加。 二、引入 Typescript 详见 Vue3 Vite 项目引入 Typescript 三、引入 Eslint Pritter 详见 Vue3 Vite TS 项目引入 Eslint Pritter 四、配置自动导入插件引入 El…...
Python操作neo4j库py2neo使用(一)
Python操作neo4j库py2neo使用(一) 安装(只用于测试) docker-compose .yml 文件 version: 3.8 services:neo4j:image: neo4j:5.6.0-enterprise #商业版镜像hostname: neo4jcontainer_name: neo4jports:- "7474:7474"-…...
Oracle - 多区间按权重取值逻辑 ,分时区-多层级-取配置方案(二)
Oracle - 多区间按权重取值逻辑 ,分时区-多层级-取配置方案https://blog.csdn.net/shijianduan1/article/details/133386281 某业务配置表,按配置的时间区间及组织层级取方案,形成报表展示出所有部门方案的取值; 例如࿰…...
leetcode刷题记录(四十二)——101. 对称二叉树
(一)问题描述 . - 力扣(LeetCode). - 备战技术面试?力扣提供海量技术面试资源,帮助你高效提升编程技能,轻松拿下世界 IT 名企 Dream Offer。https://leetcode.cn/problems/symmetric-tree/description/给你…...
AutoDL安装docker问题
在AutoDL上租了卡,安装docker遇到一些问题: 1.执行 sudo docker run hello-world 报错 docker: Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running? 解决方法 先查看docker有没有启动,…...
变量 varablie 声明- Rust 变量 let mut 声明与 C/C++ 变量声明对比分析
一、变量声明设计:let 与 mut 的哲学解析 Rust 采用 let 声明变量并通过 mut 显式标记可变性,这种设计体现了语言的核心哲学。以下是深度解析: 1.1 设计理念剖析 安全优先原则:默认不可变强制开发者明确声明意图 let x 5; …...
论文解读:交大港大上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(二)
HoST框架核心实现方法详解 - 论文深度解读(第二部分) 《Learning Humanoid Standing-up Control across Diverse Postures》 系列文章: 论文深度解读 + 算法与代码分析(二) 作者机构: 上海AI Lab, 上海交通大学, 香港大学, 浙江大学, 香港中文大学 论文主题: 人形机器人…...
k8s从入门到放弃之Ingress七层负载
k8s从入门到放弃之Ingress七层负载 在Kubernetes(简称K8s)中,Ingress是一个API对象,它允许你定义如何从集群外部访问集群内部的服务。Ingress可以提供负载均衡、SSL终结和基于名称的虚拟主机等功能。通过Ingress,你可…...
day52 ResNet18 CBAM
在深度学习的旅程中,我们不断探索如何提升模型的性能。今天,我将分享我在 ResNet18 模型中插入 CBAM(Convolutional Block Attention Module)模块,并采用分阶段微调策略的实践过程。通过这个过程,我不仅提升…...
FFmpeg 低延迟同屏方案
引言 在实时互动需求激增的当下,无论是在线教育中的师生同屏演示、远程办公的屏幕共享协作,还是游戏直播的画面实时传输,低延迟同屏已成为保障用户体验的核心指标。FFmpeg 作为一款功能强大的多媒体框架,凭借其灵活的编解码、数据…...
《用户共鸣指数(E)驱动品牌大模型种草:如何抢占大模型搜索结果情感高地》
在注意力分散、内容高度同质化的时代,情感连接已成为品牌破圈的关键通道。我们在服务大量品牌客户的过程中发现,消费者对内容的“有感”程度,正日益成为影响品牌传播效率与转化率的核心变量。在生成式AI驱动的内容生成与推荐环境中࿰…...
三体问题详解
从物理学角度,三体问题之所以不稳定,是因为三个天体在万有引力作用下相互作用,形成一个非线性耦合系统。我们可以从牛顿经典力学出发,列出具体的运动方程,并说明为何这个系统本质上是混沌的,无法得到一般解…...
Razor编程中@Html的方法使用大全
文章目录 1. 基础HTML辅助方法1.1 Html.ActionLink()1.2 Html.RouteLink()1.3 Html.Display() / Html.DisplayFor()1.4 Html.Editor() / Html.EditorFor()1.5 Html.Label() / Html.LabelFor()1.6 Html.TextBox() / Html.TextBoxFor() 2. 表单相关辅助方法2.1 Html.BeginForm() …...
Windows安装Miniconda
一、下载 https://www.anaconda.com/download/success 二、安装 三、配置镜像源 Anaconda/Miniconda pip 配置清华镜像源_anaconda配置清华源-CSDN博客 四、常用操作命令 Anaconda/Miniconda 基本操作命令_miniconda创建环境命令-CSDN博客...
从零开始了解数据采集(二十八)——制造业数字孪生
近年来,我国的工业领域正经历一场前所未有的数字化变革,从“双碳目标”到工业互联网平台的推广,国家政策和市场需求共同推动了制造业的升级。在这场变革中,数字孪生技术成为备受关注的关键工具,它不仅让企业“看见”设…...
