linux文件编辑--vi

news2025/1/18 20:22:08

目录标题

      • vi/vim中三种模式
      • 命令模式下的常用命令--光标移动
      • 输入模式
      • 末行模式
      • vim中常用的操作类型
        • 命令行模式下的常用命令--复制、粘贴、删除
        • 命令模式下的常用命令--文件内容查找
        • 命令模式中的基本操作--撤销编辑及保存退出
        • 末行模式中的基本操作--保存文件内容及退出vi编辑器
        • 末行模式中的基本操作--打开新文件或读入其他文件内容
        • 末行模式中的基本操作--文件内容替代

vi/vim中三种模式

命令模式:控制光标移动,可对文本进行复制、粘贴、删除和查找等工作、
输入模式:正常的文本录用。
末行模式:保存或退出文档,以及设置编辑环境。
vim编译器模式切换方法如下:
在这里插入图片描述

命令模式下的常用命令–光标移动

命令作用
dd删除光标所在行
dG删除光标所在行以及文档尾所有内容
dgg删除光标所在行以及文档首所有内容
d^删除光标所在字符前到行首的字符
d$删除光标所在字符到行尾字符
x删除光标所在字符
^跳转的光标所在行的行首
$跳转的光标所在行的行尾
G跳转到文档尾的行首 例如:NG跳转到指定行
gg跳转到文档首的行首
yy复制光标所在行 例如:Nyy从光标开始统计多行复制
cc剪切光标所在行
p粘贴到光标所在的下一行

输入模式

命令作用
i插入在光标前
l在光标所在行的行首插入
a在光标后插入
A在光标所在行的行尾插入
o在光标所在的下一行插入
O在光标所在的上一行插入
s删除光标字符进入插入模式
S删除光标所在行进入插入模式
u向左撤销
Ctrl+r向右撤销

末行模式

命令模式
:q正常退出
:q!强制退出
:w写入保存
:wq保存并退出
:wq!保存并强制退出
:10跳转到第十行
:r filename指定文件内容读取到当前文件
:%s /配置字符信息/替代的字符/g替代每一行匹配到的所有字符

vim中常用的操作类型

操作类型操作键功能
光标方向移动上、下、左、右上、下、左、右
翻页Page Down或Ctrl+F,Page Up或Ctrl+B向上翻一整页,向下翻一整页
行内快速跳转Home键或“^”、数字“0”跳转至行首
End键或“$”键跳转到行尾
行间快速跳转1G或者gg跳转到文件的首行
G跳转到文件的末尾行
#G跳转到文件中的第#行
行号显示:set nu在编译器中显示行号
:set nonu取消编译器中的行号显示

命令行模式下的常用命令–复制、粘贴、删除

操作类型操作键功能
x或Del删除光标处的单个字符
dd删除当前光标所在行
删除#dd删除从光标处开始的#行内容
d^删除当前光标之前到行首的所有字符
d$删除当前光标处到行尾的所有字符
复制yy复制当前整行的内容到剪贴板
粘贴p将缓冲区中的内容粘贴到光标位置出之后
P粘贴到光标位置处之前

命令模式下的常用命令–文件内容查找

操作键功能
/word从上而下在文件中查找字符串“word”
?word从下而上在文件中查找字符串“word”
n定位下一个匹配的被查找字符串
N定义上一个匹配的被查找字符串

命令模式中的基本操作–撤销编辑及保存退出

操作键功能
u按一次取消最近的一次操作,多次重复按u键,恢复已进行的多步操作
U用于取消对当前行所做的所有编辑

末行模式中的基本操作–保存文件内容及退出vi编辑器

功能命令备注
保存文件:w
:w /root/newfile另存为其它文件
退出vi:q未修改退出
:q!放弃对文件内容的修改,并退出vi
保存文件退出vi:wq

末行模式中的基本操作–打开新文件或读入其他文件内容

命令功能
:e ~/install.log打开新的文件进行编辑
:r /etc/filesystems在当前文件中读入其他文件内容

末行模式中的基本操作–文件内容替代

命令功能
:s /old/new将当前行中查找到的第一个字符“old”串替换为“new”
:s /old/new/g将当前行中查找到的所有字符串“old”替换为“new”
:#,#s/old/new/g在行“#,#”范围内替换所有的字符串“old”为“new”
:% s/old/new/g在整个文件范围内替换所有的字符串“old”为“new”
:s /old/new/c在替换命令末尾加入c命令,将对每个替换动作提示用户进行确认

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

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

相关文章

GitHub标星15w,如何用Python实现所有算法?

学会了 Python 基础知识,想进阶一下,那就来点算法吧!毕竟编程语言只是工具,结构算法才是灵魂。 新手如何入门 Python 算法? 几位印度小哥在 GitHub 上建了一个各种 Python 算法的新手入门大全。从原理到代码&#xf…

[论文阅读RGBD-SOD][2022_TCSVT_MoADNet][轻量化]

MoADNet: Mobile Asymmetric Dual-Stream Networks for Real-Time and Lightweight RGB-D Salient Object Detection paper:https://ieeexplore.ieee.org/abstract/document/9789193 动机 尽管已有许多优秀的RGB-D SOD技术被提出,但它们大多关注性能…

面试篇-从今天开始彻底分清Java内存模型JMM和运行时数据区

“相信很多人会把Java内存模型与Java运行时数据区给搞混淆” Java内存模型和Java运行时数据区是两个不同的概念,很容易让人混淆。下面简单介绍一下它们的区别: Java内存模型(JMM)是Java虚拟机规范中定义的一种内存模型&#xff…

如何优化快速排序?

欢迎来到 Claffic 的博客 💞💞💞 前言: 还记得上次的快速排序吗?还记得 key 是怎么取的吗?当时我直接把数组的起始元素作为了 key 值,其实这样做是有弊端的,试想:一个降…

SAP Business Technology Platform (BTP)的架构理解

查资料看到的,转一下,附上链接: SAP Business Technology Platform (BTP)的架构理解 长期以来,我在与客户和伙伴的沟通交流中发现大家依然对SAP业务技术平台 – SAP Business Technology Platform (以下简称BTP)纯有各种疑惑&…

webgl-图形非矩阵旋转

知识拓展 由(x1,y1)旋转β角度到(x2,y2) 根据圆极坐标方程 x1 r*cosα y1 r*sinα 可得 x2 r*cos(α β) r*cosα*cosβ - r*sinα*sinβ,因为x1 r*cosα,y1 r*sinα,所以x2 x1*cosβ -y1*sinβ…

如何进行移动设备资产管理

随着越来越多的移动设备进入和访问组织的企业资源,管理员必须监视和控制对企业数据的访问。与传统工作站不同,传统工作站位于企业的物理工作区内,移动设备从多个位置使用,从而使移动资产管理过程更加复杂。 什么是移动资产管理 …

java基础集合面试题

什么是集合 集合就是一个放数据的容器,准确的说是放数据对象引用的容器 集合类存放的都是对象的引用,而不是对象的本身 集合类型主要有3种:set(集)、list(列表)和map(映射)。 集合的特点 集合的特点主要有如下两点&…

LMKD分享

背景 Android是一个多任务系统,可以同时运行多个程序,一般来说,启动运行一个程序是有一定的时间开销的,因此为了加快运行速度,当你退出一个程序时,Android并不会立即杀掉它,这样下次再运行该程…

【MySQL优化】快速入门慢SQL优化

MySQL B树结构(二叉排序树) 索引 SQL优化,主要就是在优化索引 索引:相当于书的目录 索引:index是帮助MYSQL高效获取数据的数据结构。索引是数据结构(树:B树(默认)、Hash树…) 索引的弊端: 1.索引本身很大,可以存…

Spring Cloud Config配置服务及那些你不知道的坑

目录 1、为什么选择Spring Cloud Config 1.1 集中式管理 1.2 动态修改配置 2、Spring Cloud Config 简介 3、服务端配置 3.1 添加依赖 3.2 开启服务注册 3.3 添加YML配置 3.4 创建远程分支及Profile配置文件 3.5 启动并测试服务 4、客户端配置 4.1 添加依赖 4.2 开…

2.3-6循环链表

原理的单链表和循环单链表的区别: 初始化循环单链表时,使头节点next指针指向头节点。 判断循环单链表是否为空。 对比: 单链表:if(L->next NULL) 双链表:if(L->nextL) 判断循环单链表的结点p是否为表尾结点…

汇聚音视频新能量 探索行业新蓝海

视频行业卷成红海,如何突破瓶颈,去探索行业的新蓝海,本次LiveVideoStackCon 2022北京站邀请到快手高级副总裁、研发线负责人于冰,以《汇聚音视频新能量,探索行业新蓝海》为题,从视频行业趋势和痛点出发&…

类ChatGPT模型ChatGLM-b6本地部署实践

国外ChatGPT火爆持续,前一段时间百度发布“文心一言”还没有全面放开测试,这不阿里“通义千问”又悄然而至,国内大模型AI产品渐渐浮出水面。早在2022年8月份时候清华大学的对话语言模型ChatGLM-6B就发布并开源,本文简要介绍ChatGL…

flex弹性布局详细介绍

这里提供一个可以边学习边玩的flex学习网站:弹性盒青蛙 目录一、Flex布局是什么?二、属性1. justify-content 属性2. align-items属性3. flex-direction属性4. order属性5. align-self属性6. flex-wrap 属性7. flex-flow属性8. align-content属性三、综合…

测试新人必看,软件测试测试流程

不同类型的软件产品测试的方式和重点不一样,测试流程也会不一样。同样类型的软件产品,不同的公司所制定的测试流程也会不一样。虽然不同软件的详细测试步骤不同,但它们所遵循的最基本的测试流程是一样的。 1分析测试需求 2制定测试计划 3设…

Python opencv 实现图像平移及旋转

Python opencv 实现图像平移及旋转 仿射变换是一种仅在二维平面中发生的几何变形,变换之后的图像仍然可以保持直线的 “平直性” 和 “平行性”,也就是说原来的直线变换之后还是直线,平行线变换之后还是平行线。图像平移和图像旋转是常见的放…

IMX6ULL-IRQ中断之添加中断向量表

一. 中断向量表 中断向量表是存放中断向量的表。中断服务程序的入口地址或存放中断服务程序的首地址成为中断向量,因此中断向量表是一系列中断服务程序入口地址组成的表。当有中断事件发生时,处理器通过中断向量表进入相关的中断服务程序处理事件。 二.…

自动化测试(二):QTP验证点

1 、程序自带验证点 自带验证点:图形界面insert -> checkpoint Standard Checkpoint 标准验证:用于检查测试对象的属性 Text Checkpoint 文本验证:用于检查文本字符串是否在应用程序中的适当位置出现 Text Area Checkpoint文本区域验…

饮用水中的六价铬去除工艺详解

铬是人体必需的微量元素,天然水不含铬,海水中铬的平均浓度为0.05μg/L,饮用水中铬含量更低。 铬在水中主要以三价和六价形式存在,三价的铬是对人体有益的元素,而六价铬是有毒的。由于其毒性之高,已被国家列…