Linux 文件编辑命令

一、三种模式介绍

命令模式

插入模式(编辑模式)

末行模式

二、模式切换

1.命令模式切换到插入模式
(1) a //进入到当前光标后开始编辑
(2) A //进入到当前光标所在行的行末开始编辑
(3)i //进入当前光标位置开始编辑
(4)I //进入当前光标所在行的行头开始编辑
(5) o //进入当前光标下一行开始编辑
(6)O //进入当前光标上一行开始编辑

2.命令模式切换到末行模式
(1): //对文本的设置或保存工作
(2) / //对文本进行全文向下搜索字符串string
(3)? //对文本进行全文向上搜索字符串string

3.vi/vim常用命令

(1) n dd //删除光标开始向下的n行

例如:现在用vi打开一个main.c文件,文件中有以下代码,在命令模式下进行操作:

在这里插入图片描述

①删除多行

将光标移到某一行,按下数字n,就可以删除从这行开始往下的n行。

此时,假如现在不想要4,5,6这3行,将光标移到第4行,输入:3dd,这3行代码就被删除了:

在这里插入图片描述
②删除一行:

删除一行代码时不用输入1,之间把光标移到要删除的那一行,然后按dd。

现在要删除第四行,就直接把光标移到第4 行,然后按dd就可以删除这一行:

在这里插入图片描述

③这种删除是一种剪切式的删除:

可以将刚刚删除的一行代码粘贴到光标所在的那一行。将光标移到某一行,然后按p,刚刚删除的代码就会粘贴到这一行。

刚刚上面我们删除了一个空行,现在把这个空行粘贴到第5行,把光标移动到第5行,然后按p,此时刚刚删除的空行就粘贴到了第5行的下面,也就是第6行:

在这里插入图片描述

(2)n yy //拷贝光标开始向下的n行

例如:有以下代码:

在这里插入图片描述

①复制一行:

将光标移到某一行,不用按1,直接按yy,改行代码就被复制了。

②复制多行:

将光标移到某一行,要复制从这行开始往下的n行,就按下n,然后按yy,这时从光标开始往下的n行代码就被复制了。

如果现在要复制4,5,6,7这四行代码,就把光标移到第4行,然后按4yy,此时,这4行代码已经被复制了:

在这里插入图片描述

(3) p //粘贴

将光标移到某一行按p将刚刚复制的内容粘贴到光标所在的下一行。

如果要在第8行粘贴刚刚上面复制的4,5,6,7这4行代码,就将光标移到第8行,然后按p:

在这里插入图片描述
(4)u //撤销上一次操作

如果现在要撤销刚刚上面粘贴的代码,就直接按n,即可以撤销上一步粘贴的操作:

在这里插入图片描述

(5) ctrl + r // 恢复上一次撤销操作

如果,要恢复刚刚撤销的内容,就按ctrl + r :

在这里插入图片描述
(6) r和R //替换字符

①r:替换光标所在位置的字符,先按r,在按自己想要替换的字符。

例如,有以下代码:
在这里插入图片描述

现在要把光标所在位置的“n”替换为“y”,就在光标所在位置按r,然后按y将其替换:
在这里插入图片描述
②R:替换从当前光标开始往后的字符,按Esc结束替换。

例如,有以下代码:

在这里插入图片描述

要将从现在光标位置开始往后的字符替换为“ZZZZZZ”,按R,开始替换:

在这里插入图片描述
替换结束之后按Esc结束替换。

(7)cc //清除一行,进入插入模式重写代码,写完之后按Esc回到命令模式

例如,有如下代码:

在这里插入图片描述
现在要清除光标所在这一行进行重写,就按cc,从头开始写:
在这里插入图片描述
在这里插入图片描述
重写之后按Esc回到命令模式。

(8)C //清除当前光标到行末的内容,并进入插入模式进行重写代码,写完之后按Esc回到命令模式

例如,有以下代码:
在这里插入图片描述
现在要清除光标到行末的内容,并进入插入模式重写这段代码,按C:
在这里插入图片描述
重写之后,按Esc返回命令模式:
在这里插入图片描述
(8) shift + 6 //光标移动到当前行的行头
(9) shift + 4 //光标移动到当前行的行尾
(10)G //光标移动到整个文本的最后一行
(11)gg //光标移动到整个文本的第一行
(12)n G //光标移动到第n行
(13) d n G //删除光标到n行的内容
(14)d G //从当前光标位置删除到文件末尾

例如,有以下代码:
在这里插入图片描述
现在要删除光标所在位置11行行头到末尾的内容,就可以按dG:

在这里插入图片描述
(14) y n G //拷贝光标到n行的内容

4.末行模式下的操作
(1):w //保存文本
(2):q //退出编辑
(3):wq //保存并退出
(4):q! //强制退出
(5):w newfile //另存为
(6):set nu //显示行号
(7) :set nonu //取消行号
(8): set hlsearch //设置高亮搜索
(9): set nohlsearch //取消高亮搜索
(10):n //跳转的第n行
(11): n,m s/oldstring/newstring //替换整个文本每行的第一个oldstring

例如,有以下代码:

在这里插入图片描述
现在要把第5行到第15行中,每一行的第一个“toy”替换成“boy”,输入:进入行末模式,然后输入5,15 s/toy/boy
在这里插入图片描述

按回车,即可替换:
在这里插入图片描述

(12) :n, m s/oldstring/newstirng/g //替换整个文本所有的oldstring

例如:有以下代码:

在这里插入图片描述
现在要把第5行到第15行中,所有的“toy”替换成“BBB”,输入:进入行末模式,然后输入5,15 s/toy/BBB/g
在这里插入图片描述

按下回车,完成替换:

在这里插入图片描述

(13) /string //向下搜索string

例如,有以下代码:

在这里插入图片描述
按/,/后面输入要搜索的内容,进行搜索:
在这里插入图片描述
然后按回车,这时按n就可以在文件中从头到尾依次搜索所输入的内容:
在这里插入图片描述
(14)?string //从下向上搜索string

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

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

相关文章

Python Opencv实践 - 图像缩放

import cv2 as cv import numpy as np import matplotlib.pyplot as pltimg_cat cv.imread("../SampleImages/cat.jpg", cv.IMREAD_COLOR) plt.imshow(img_cat[:,:,::-1])#图像绝对尺寸缩放 #cv.resize(src, dsize[, dst[, fx[, fy[, interpolation]]]]) #指定Size大…

最新智能AI系统+ChatGPT源码搭建部署详细教程+知识库+附程序源码

近期有网友问宝塔如何搭建部署AI创作ChatGPT,小编这里写一个详细图文教程吧。 使用Nestjs和Vue3框架技术,持续集成AI能力到AIGC系统! 增加手机端签到功能、优化后台总计绘画数量逻辑!新增 MJ 官方图片重新生成指令功能同步官方 …

注意:阿里云服务器随机分配可用区说明

阿里云服务器如有ICP备案需求请勿选择随机可用区,因为当前地域下的可用区可能不支持备案,阿里云百科分享提醒大家,如果你的购买的云服务器搭建网站应用,网站域名需要使用这台云服务器备案的话,不要随机分配可用区&…

ATF(TF-A)安全通告 TFV-6 (CVE-2017-5753, CVE-2017-5715, CVE-2017-5754)

ATF(TF-A)安全通告汇总 目录 一、ATF(TF-A)安全通告 TFV-6 (CVE-2017-5753, CVE-2017-5715, CVE-2017-5754) 二、Variant 1 (CVE-2017-5753) 三、Variant 2 (CVE-2017-5715) 四、Variant 3 (CVE-2017-5754) 一、ATF(TF-A)安全通告 TFV-6 (CVE-2017-5753, CVE-2017-5715, C…

tp5中的事务处理

使用事务首先要数据库支持事务; 如下MySQL数据库user表开启事务支持,即设计表->引擎设置为InnoDB->保存 事务处理 1. 数据库的表引擎需要是 InnoDB 才可以使用,如果不是调整即可; 2. 事务处理,需要执行多个 SQ…

MOCK测试

介绍 mock:就是对于一些难以构造的对象,使用虚拟的技术来实现测试的过程。 mock测试:在测试过程中,对于某些不容易构造或者不容易获取的对象,可以用一个虚拟的对象来代替的测试方 法。 接口Mock测试:在接口…

Microsoft365家庭版1年订阅新功能及版本对比

Microsoft 365可帮助您工作、学习、组织、连接和创,只需一项方便的订阅,即可尽享具有 Microsft 365 的6款精品应用、可同时登录5 台设备(包括 Windows、macOS、iOS 和 Android 设备)、高级安全性等,并且可以自由管理授…

中间件多版本冲突的4种解决方案和我们的选择

背景 在小小的公司里面,挖呀挖呀挖。最近又挖到坑里去了。一个稳定运行多年的应用,需要在里面支持多个版本的中间件客户端;而多个版本的客户端在一个应用里运行时会有同名类冲突的矛盾。在经过询问chatGPT,百度,googl…

c语言--浮点数(float)与0值比较

我们定义一个float类型的数据a,赋值为123456789并输出: int main() {float a;a 123456789;printf("%f\n",a);return 0; }输出结果为: 由此可以看出,程序输出的结果并不是其被赋予的值。即说明了浮点数存在一定的误差。…

明月之刃:armbian巧借nmtui管理网络连接

文章目录 nmtui简介安装nmtuinmtui使用连接wifi设置主机名称 nmtui简介 nmtui是NetworkManager TUI(Text User Interface)的缩写,它提供了一个可视化的界面来管理网络连接。但是,在Debian系统中,没有默认安装nmtui工具…

各地区-各行业法人单位、区划数63个指标(2010-2022年)

一、数据介绍 数据名称:各地区-各行业法人单位、区划数63个指标 数据年份:2010-2022年(法人单位至2021年) 数据样本:404条 数据来源:自我整理 二、指标说明 行政区划代码 地区 长江经济带 经度 纬…

Python(八十三)字符串的比较操作

❤️ 专栏简介:本专栏记录了我个人从零开始学习Python编程的过程。在这个专栏中,我将分享我在学习Python的过程中的学习笔记、学习路线以及各个知识点。 ☀️ 专栏适用人群 :本专栏适用于希望学习Python编程的初学者和有一定编程基础的人。无…

pgsql checkpoint机制(1)

检查点触发时机 检查点间隔时间由checkpoint_timeout设置pg_xlog中wall段文件总大小超过参数max_WAL_size的值postgresql服务器在smart或fast模式下关闭手动checkpoint 为什么需要检查点? 定期保持修改过的数据块作为实例恢复时起始位置(问题&#xf…

WebAPIs 第一天

1.声明变量const优先(补充) 2.WebAPI基本认知 作用和分类 DOM树和DOM对象 3.获取DOM元素 4.DOM修改元素内容 5.操作元素属性 6.定时器-间歇函数 一.声明变量const优先 ① 变量声明有var let const ② 建议const优先,尽量使用const…

java的内存模型

Java内存基础 并发编程模型的两个关键问题 线程之间如何通信及线程之间如何同步 线程之间的通信机制有两种:共享内存和消息传递。 在共享内存的并发模型里,线程之间共享程序的公共状态,通过写-读内存中的公共状态 进行隐式通信。在消息传…

财务管理系统javaweb会计账房进销存jsp源代码mysql

本项目为前几天收费帮学妹做的一个项目,Java EE JSP项目,在工作环境中基本使用不到,但是很多学校把这个当作编程入门的项目来做,故分享出本项目供初学者参考。 一、项目描述 财务管理系统javaweb java,Struts2,bootstrap,mysql,…

两只小企鹅(Python实现)

目录 1 和她浪漫的昨天 2 未来的旖旎风景 3 Python完整代码 1 和她浪漫的昨天 是的,春天需要你。经常会有一颗星等着你抬头去看; 和她一起吹晚风吗﹖在春天的柏油路夏日的桥头秋季的公园寒冬的阳台; 这世界不停开花,我想放进你心里一朵&am…

Linux 终端命令之文件浏览(1) cat

Linux 文件浏览命令 cat, more, less, head, tail,此五个文件浏览类的命令皆为外部命令。 hannHannYang:~$ which cat /usr/bin/cat hannHannYang:~$ which more /usr/bin/more hannHannYang:~$ which less /usr/bin/less hannHannYang:~$ which head /usr/bin/he…

tensorflow 1.14 的 demo 02 —— tensorboard 远程访问

tensorflow 1.14.0, 提供远程访问 tensorboard 服务的方法 第一步生成 events 文件: 在上一篇demo的基础上加了一句,如下, tf.summary.FileWriter("./tmp/summary", graphsess1.graph) hello_tensorboard_remote.py …

PG常用SQL

数据库 创建数据库 PostgreSQL 创建数据库可以用以下三种方式: 1、使用 CREATE DATABASE SQL 语句来创建。2、使用 createdb 命令来创建。3、使用 pgAdmin 工具。 CREATE DATABASE 创建数据库 CREATE DATABASE 命令需要在 PostgreSQL 命令窗口来执行&#xff0…