【Linux运维系列】vim操作
💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。
- 推荐:kwan 的首页,持续学习,不断总结,共同进步,活到老学到老
- 导航
- 檀越剑指大厂系列:全面总结 java 核心技术点,如集合,jvm,并发编程 redis,kafka,Spring,微服务,Netty 等
- 常用开发工具系列:罗列常用的开发工具,如 IDEA,Mac,Alfred,electerm,Git,typora,apifox 等
- 数据库系列:详细总结了常用数据库 mysql 技术点,以及工作中遇到的 mysql 问题等
- 懒人运维系列:总结好用的命令,解放双手不香吗?能用一个命令完成绝不用两个操作
- 数据结构与算法系列:总结数据结构和算法,不同类型针对性训练,提升编程思维,剑指大厂
非常期待和您一起在这个小小的网络世界里共同探索、学习和成长。💝💝💝 ✨✨ 欢迎订阅本专栏 ✨✨
博客目录
- 一.模式切换
- 1.编辑模式
- 2.底线命令行
- 二.一般模式
- 1.方向键
- 2.向上翻一页
- 3.向下翻一页
- 4.向上移动半页
- 5.向下移动半页
- 三.定位跳转
- 1.跳转定位
- 2.跳到首行
- 3.跳到尾行
- 4.跳到 n 行
- 5.绝对行首
- 6.绝对行尾
- 7.第一个非空白
- 四.增删改查
- 1.删除
- 2.复制
- 3.撤销
- 4.翻屏
- 5.修改文本
- 6.常用快捷键
- 五.单词操作
- 1.ciw
- 2.dw
- 3.db
- 4.daw
- 六.底线命令行
- 1.显式行号
- 2.取消行号
- 3.注释
- 4.脚本参数
- 5.查找字符串
- 6.保存
- 7.退出
- 8.强制执行
一.模式切换
1.编辑模式
#在当前位置前面插入
i#在当前位置后面插入
a#在当前位置下一行插入
o
2.底线命令行
#后面可以跟命今或者正则表达式
:#向下搜索指定字符
/字符#向上搜索指定字符
?字符
二.一般模式
1.方向键
h·j·k·l #左·下·上·右
2.向上翻一页
forward
ctrl+f
3.向下翻一页
backword
Ctrl+b
4.向上移动半页
up
Ctrl+u
5.向下移动半页
down
Ctrl+d
三.定位跳转
1.跳转定位
很重要也很实用
| 命令 | 含义 |
|---|---|
| gg | 跳到首行 |
| shift+gg | 跳到末行 |
| :n | 跳到第 n 行 |
| 0 | 行内跳转,绝对行首 |
| shift+0 | 行内跳转,绝对行尾 |
| $ | 行内跳转,绝对行尾,等价于 shift+0 |
| ^ | 行内跳转,行首的第一个非空白字符 |
2.跳到首行
gg
3.跳到尾行
shift+gg
4.跳到 n 行
:n
5.绝对行首
行内跳转,绝对行首
0
6.绝对行尾
行内跳转,绝对行尾
$
7.第一个非空白
行内跳转,行首的第一个非空白字符
^
四.增删改查
1.删除
| 命令 | 含义 |
|---|---|
| x | 删除光标所在处字符 |
| nx | 删除光标所在处后的 n 个字符 |
| dd | 删除光标所在行。ndd 删除 n 行 |
| dG | 删除光标所在行到末尾行的所有内容 |
| D | 删除光标所在处到行尾的内容 |
| :5,7d | 删除指定范围的行 |
| dw | 删除一个单词/光标之后的单词剩余部分 |
| d$ | 删至行尾 |
| d0 | 删至行首 |
2.复制
| 命令 | 含义 |
|---|---|
| np | 复制多遍 |
| yw | 光标移到想要被复制词的词首,输入 |
| p | 光标移到想到粘贴的位置,输入 |
| 5yl | 光标移到想要被复制字符的首位置,若想复制 5 个字符输入: |
| yy | 复制当前行 |
| nyy | 复制多行 (比如 3yy,复制 3 行) |
3.撤销
| 命令 | 含义 |
|---|---|
| u | undo,取消上一步操作 |
| Ctrl + r | redo,返回到 undo 之前,恢复撤销 |
| r | 替换光标所在处的字符 |
| R | 从光标所在处开始替换,按 Esc 键结束 |
| nu | 撤销 n 次 |
4.翻屏
- Ctrl+f: 向下翻一屏
- Ctrl+b: 向上翻一屏
- Ctrl+d: 向下翻半屏
- Ctrl+u: 向上翻半屏
5.修改文本
| 命令 | 含义 |
|---|---|
| A | 在光标当前行末尾插入 |
| o | 在光标当前行的下一行插入新行 |
| i | 在光标前插入 |
| I | 在光标当前行开始插入 |
| a | 在光标后插入 |
| O | 在光标当前行的上一行插入新行 |
| :wq | 保存并退出 |
6.常用快捷键
| 命令 | 含义 |
|---|---|
| Shift+ zz | 保存退出,与“:wq"作用相同 |
| v | 进入字符可视模式 |
| V | 进入行可视模式 |
| CtrI + v | 进入块可视模式 |
五.单词操作
1.ciw
在 Vim 中,要修改光标所在的单词,可以使用 ciw 命令。这个命令可以删除当前单词并进入插入模式,允许你输入新的单词。
具体步骤如下:
- 将光标移动到要修改的单词上。
- 按下
ciw进入插入模式,并删除当前单词。 - 输入你想要替换的新单词。
- 按下
Esc退出插入模式。 - 你就完成了对当前单词的修改。
2.dw
dw:删除从当前光标位置开始到下一个单词开头的字符,包括当前光标所在的字符。
d 表示删除,w 表示单词(word)
3.db
db:删除从当前光标位置开始到当前单词开头的字符,包括当前光标所在的字符。
d 表示删除,b 表示当前单词开头
4.daw
daw:删除光标所在的单词,包括前后的空格。
d 表示删除,w 表示单词(word),a 表示当前单词(around)。
六.底线命令行
1.显式行号
:set nu
2.取消行号
:set nonu
3.注释
多行注释:
- 首先按键盘上的 ESC 进入命令行模式
- 再按 Ctrl+V 进入 VISUAL BLOCK 模式
- 利用上下左右键调整需要注释多少行以及行的宽度
- 再按 Shift+i 或 s 进入插入模式
- 输入代表注释的符号,比如#/
- 再次按 ESC 键,这时就可完成多行注释 可能需要等上一会,不要着急
删除注释:
前三步与加注释相同
- 首先按键盘上的 ESC 进入命令行模式
- 再按 Ctrl+V 进入 VISUAL BLOCK 模式
- 利用上下左右键调整需要去注释多少行以及行的宽度
- 再按 d 即可完成去注释
4.脚本参数
PROFILE=$1
PROFILE=$2
PROFILE=$3
数字表示第几个参数
5.查找字符串
| 需求 | 命令 | 下一个匹配 | 上一个匹配 |
|---|---|---|---|
| 从头开始搜 | /字符串 | n | shift+n |
| 从尾开始搜 | ?字符串 | n | shift+n |
6.保存
:w
7.退出
:q
8.强制执行
:!
觉得有用的话点个赞
👍🏻呗。
❤️❤️❤️本人水平有限,如有纰漏,欢迎各位大佬评论批评指正!😄😄😄💘💘💘如果觉得这篇文对你有帮助的话,也请给个点赞、收藏下吧,非常感谢!👍 👍 👍
🔥🔥🔥Stay Hungry Stay Foolish 道阻且长,行则将至,让我们一起加油吧!🌙🌙🌙
相关文章:
【Linux运维系列】vim操作
💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…...
Centos服务器部署前后端项目
目录 准备工作1. 准备传输软件2. 连接服务器 部署Mysql1.下载Mysql(Linux版本)2. 解压3. 修改配置4. 启动服务另一种方法Docker 部署后端1. 在项目根目录中创建Dockerfile文件写入2. 启动 部署前端1. 在项目根目录中创建Dockerfile文件写入2. 启动 准备工作 1. 准备传输软件 …...
【初始RabbitMQ】延迟队列的实现
延迟队列概念 延迟队列中的元素是希望在指定时间到了之后或之前取出和处理消息,并且队列内部是有序的。简单来说,延时队列就是用来存放需要在指定时间被处理的元素的队列 延迟队列使用场景 延迟队列经常使用的场景有以下几点: 订单在十分…...
spark为什么比mapreduce快?
spark为什么比mapreduce快? 首先澄清几个误区: 1:两者都是基于内存计算的,任何计算框架都肯定是基于内存的,所以网上说的spark是基于内存计算所以快,显然是错误的 2;DAG计算模型减少的是磁盘I/O次数&…...
Unity通过XXpermission插件获取MANAGE_EXTERNAL_STORAGE权限
最近公司准备用Unity做一个安卓端的文件管理器功能,文件管理器已经做完了。刚开始的时候想要申请一下所有文件权限,发现在Unity里面申请所有文件权限(android.permission.MANAGE_EXTERNAL_STORAGE)相对来说比较麻烦。所以准备写一下文章记录一下如何申请…...
「连载」边缘计算(二十一)02-26:边缘部分源码(源码分析篇)
(接上篇) DeviceTwin struct组成剖析 该部分对DeviceTwin struct的组成进行剖析。接着devicetwin struct调用链剖析的实例化DeviceTwin struct(dt : DeviceTwin{})往下剖析,进入DeviceTwin struct的定义,…...
Unity(第四部)新手组件
暴力解释就是官方给你的功能;作用的对象上面如: 创建一个球体,给这个球体加上重力 所有物体都是一个空物体,加上一些组件才形成了所需要的GameObject。 这是一个空物体,在Scene场景中没有任何外在表现,因为…...
【JS】【Vue3】【React】获取鼠标位置的方法:JavaScript、Vue 3和React示例
目录 使用JavaScript原生方法在Vue 3中获取鼠标位置在React中获取鼠标位置 随着Web应用程序的复杂性不断增加,获取用户交互信息变得越来越重要。其中,获取鼠标位置是一项常见的任务,可以用于实现各种交互效果,如拖拽、悬停提示等。…...
[Docker 教学] 常用的Docker 命令
Docker是一种流行的容器化技术。使用Docker可以将数据科学应用程序连同代码和所需的依赖关系打包成一个名为镜像的便携式工件。因此,Docker可以简化开发环境的复制,并使本地开发变得轻松。 以下是一些必备的Docker命令列表,这些命令将在你下一…...
小程序应用、页面、组件生命周期
引言 微信小程序生命周期是指在小程序运行过程中,不同阶段触发的一系列事件和函数。这一概念对于理解小程序的整体架构和开发流程非常重要。本文将介绍小程序生命周期的概念以及在不同阶段触发的关键事件,帮助开发者更好地理解和利用小程序的生命周期。 …...
Springboot中如何记录好日志
Springboot中如何记录日志 日志体系整体介绍 日志一直在系统中占据这十分重要的地位,他是我们在系统发生故障时用来排查问题的利器,也是我们做操作审计的重要依据。那么如何记录好日志呢?选择什么框架来记录日志,是不是日志打越…...
vm 虚拟机中ubuntu环境配置共享文件夹的方式
1. 在虚拟机设置中启用共享文件夹选项,映射到Windows中具体的目录。 2. 启动虚拟机。 3. 挂在cd #查看cd设备文件 sudo blkid#创建挂载点 sudo mkdir -p /media/cdrom#挂载cd sudo mount /dev/sr0 /media/cdrom#卸载cd sudo umount /media/cdrom 4. 执行完挂载后…...
EMQX Enterprise 5.5 发布:新增 Elasticsearch 数据集成
EMQX Enterprise 5.5.0 版本已正式发布! 在这个版本中,我们引入了一系列新的功能和改进,包括对 Elasticsearch 的集成、Apache IoTDB 和 OpenTSDB 数据集成优化、授权缓存支持排除主题等功能。此外,新版本还进行了多项改进以及 B…...
安全架构设计理论与实践
一、考点分布 安全架构概述(※※)安全模型(※※※)信息安全整体架构设计网络安全体系架构设计区块链技术(※※) 二、安全架构概述 被动攻击:收集信息为主,破坏保密性 主动攻击&#…...
SQL注入漏洞解析--less-46
我们先看一下46关 他说让我们先输入一个数字作为sort,那我们就先输入数字看一下 当我们分别输入1,2,3可以看到按照字母顺序进行了排序,所以它便是一个使用了order by语句进行排序的查询的一种查询输出方式 当输入时出现报错提示,说…...
【算法与数据结构】回溯算法、贪心算法、动态规划、图论(笔记三)
文章目录 七、回溯算法八、贪心算法九、动态规划9.1 背包问题9.2 01背包9.3 完全背包9.4 多重背包 十、图论10.1 深度优先搜索10.2 广度优先搜索10.3 并查集 最近博主学习了算法与数据结构的一些视频,在这个文章做一些笔记和心得,本篇文章就写了一些基础…...
【pytorch】常用代码
文章目录 条件与概率torch.tensor()torch.rand()torch.randn()torch.randint()torch.multinominal() 逻辑运算torch.argmax()torch.max()torch.sum()torch.tanh()torch.pow() 功能性操作 torch.nn.functionalF.normalize()F.elu()F.relu()F.softmax() 张量计算torch.zeros()tor…...
GB28181 —— Ubuntu20.04下使用ZLMediaKit+WVP搭建GB28181流媒体监控平台(连接带云台摄像机)
最终效果 简介 GB28181协议是视频监控领域的国家标准。该标准规定了公共安全视频监控联网系统的互联结构, 传输、交换、控制的基本要求和安全性要求, 以及控制、传输流程和协议接口等技术要求,是视频监控领域的国家标准。GB28181协议信令层面使用的是SIP(Session Initiatio…...
图片录入设备、方式与质量对图片转Excel的影响
随着数字化时代的到来,图片已经成为人们日常生活中不可或缺的一部分。在各行各业中,图片的应用越发广泛,从而促使了图片处理技术的快速发展。然而,图片的质量对于后续数据处理和分析的准确性和可靠性有着至关重要的影响。本文将从…...
Linux:ACL权限,特殊位和隐藏属性
目录 一.什么是ACL 二.操作步骤 ① 添加测试目录、用户、组,并将用户添加到组 ② 修改目录的所有者和所属组 ③ 设定权限 ④ 为临时用户分配权限 ⑤ 验证acl权限 ⑥ 控制组的acl权限 三. 删除ACL权限 一.什么是ACL 访问控制列表 (Access Control List):ACL 通…...
JavaSec-RCE
简介 RCE(Remote Code Execution),可以分为:命令注入(Command Injection)、代码注入(Code Injection) 代码注入 1.漏洞场景:Groovy代码注入 Groovy是一种基于JVM的动态语言,语法简洁,支持闭包、动态类型和Java互操作性,…...
Java 语言特性(面试系列2)
一、SQL 基础 1. 复杂查询 (1)连接查询(JOIN) 内连接(INNER JOIN):返回两表匹配的记录。 SELECT e.name, d.dept_name FROM employees e INNER JOIN departments d ON e.dept_id d.dept_id; 左…...
1688商品列表API与其他数据源的对接思路
将1688商品列表API与其他数据源对接时,需结合业务场景设计数据流转链路,重点关注数据格式兼容性、接口调用频率控制及数据一致性维护。以下是具体对接思路及关键技术点: 一、核心对接场景与目标 商品数据同步 场景:将1688商品信息…...
ESP32 I2S音频总线学习笔记(四): INMP441采集音频并实时播放
简介 前面两期文章我们介绍了I2S的读取和写入,一个是通过INMP441麦克风模块采集音频,一个是通过PCM5102A模块播放音频,那如果我们将两者结合起来,将麦克风采集到的音频通过PCM5102A播放,是不是就可以做一个扩音器了呢…...
UR 协作机器人「三剑客」:精密轻量担当(UR7e)、全能协作主力(UR12e)、重型任务专家(UR15)
UR协作机器人正以其卓越性能在现代制造业自动化中扮演重要角色。UR7e、UR12e和UR15通过创新技术和精准设计满足了不同行业的多样化需求。其中,UR15以其速度、精度及人工智能准备能力成为自动化领域的重要突破。UR7e和UR12e则在负载规格和市场定位上不断优化…...
SpringCloudGateway 自定义局部过滤器
场景: 将所有请求转化为同一路径请求(方便穿网配置)在请求头内标识原来路径,然后在将请求分发给不同服务 AllToOneGatewayFilterFactory import lombok.Getter; import lombok.Setter; import lombok.extern.slf4j.Slf4j; impor…...
【开发技术】.Net使用FFmpeg视频特定帧上绘制内容
目录 一、目的 二、解决方案 2.1 什么是FFmpeg 2.2 FFmpeg主要功能 2.3 使用Xabe.FFmpeg调用FFmpeg功能 2.4 使用 FFmpeg 的 drawbox 滤镜来绘制 ROI 三、总结 一、目的 当前市场上有很多目标检测智能识别的相关算法,当前调用一个医疗行业的AI识别算法后返回…...
QT3D学习笔记——圆台、圆锥
类名作用Qt3DWindow3D渲染窗口容器QEntity场景中的实体(对象或容器)QCamera控制观察视角QPointLight点光源QConeMesh圆锥几何网格QTransform控制实体的位置/旋转/缩放QPhongMaterialPhong光照材质(定义颜色、反光等)QFirstPersonC…...
从“安全密码”到测试体系:Gitee Test 赋能关键领域软件质量保障
关键领域软件测试的"安全密码":Gitee Test如何破解行业痛点 在数字化浪潮席卷全球的今天,软件系统已成为国家关键领域的"神经中枢"。从国防军工到能源电力,从金融交易到交通管控,这些关乎国计民生的关键领域…...
关于easyexcel动态下拉选问题处理
前些日子突然碰到一个问题,说是客户的导入文件模版想支持部分导入内容的下拉选,于是我就找了easyexcel官网寻找解决方案,并没有找到合适的方案,没办法只能自己动手并分享出来,针对Java生成Excel下拉菜单时因选项过多导…...

