Linux操作系统的vim常用命令和vim 键盘图
在vi编辑器的命令模式下,命令的组成格式是:nnc。其中,字符c是命令,nn是整数值,它表示该命令将重复执行nn次,如果不给出重复次数的nn值,则命令将只执行一次。例如,在命令模式下按j键表示光标向下移动1行,而在命令模式下输入10j则表示光标将向下移动10行。显然,这样比单纯移动键盘光标键效率要高。
1、定位光标
由于文件内容的插入、删除和替换等操作都是针对光标所在的字符或行而言的,因此应该熟悉光标移动的命令和方法,并充分利用命令重复执行的次数。
w 将光标移动到下1个单词的第1个字符。
W 将光标移动到后面第2个单词的第1个字符
e或E 将光标移动到下1个单词的最后1个字符
b或B 将光标移动到前1个单词的第1个字符
/string 向后移动光标,并使之停留在字符串string的第一个字符处
?string 向前移动光标,并使之停留在字符串string的第一个字符处
$ 将光标移动到本行的最后1个字符上
Ctrl+b 将光标移动到本行的第1个字符上
其中,w或W命令的差别只是在于非空格分割字符上,w命令视非空格分隔字符为单词,而W命令则忽略它。当使用/string或?string命令时,除了光标移动到指定的位置外,还使文件中所有符合字符串string的地方高亮显。
2、插入或添加
无论是插入还是添加,都是向所编辑的文件中加入新的内容,但由于插入可以在光标前或当前行前,添加可以在光标后或当前行后,所以vi提供了多种插入和添加命令:
i 在光标前插入字符
I 在当前行的行头插入字符
a 在光标后添加字符
A 在当前行的行尾添加字符
o 在当前行后添加新行
O 在当前行前添加新行
由于这6个命令都会使vi编辑器从命令模式切换到文本编辑模式下的插入状态,所以当插入或添加完成后,必须按ESC键返回到命令模式下。
3、删除
删除文本文件中的内容,可以按照字符、单词和行为单位进行删除,因此,也有多个删除命令。删除命令执行后将使vi继续处于命令模式下。
x 删除光标所在位置的字符,且光标移动到本行的下1个字符
nx 删除光标所在位置的n个字符
X 删除光标所在位置的前一个字符,且光标停留在原来的字符上
D 删除光标所在位置到行尾的所有字符,且光标停留在本行的行尾
dd 删除光标所在的行,且光标移动到下1行
ndd 从光标位置开始删除 n 行
dw 删除光标所在位置到下一个单词的第一个字符间的所有字符,且光标移动到下一个单词的第一个字符。
4、查找
在文件中查找字符串时,可以向前查找也可以向后查找,因此有两种命令,其格式为:
/expression
?expression
其中,斜杠(/)表示从当前位置开始向后查找,问号(?)表示从当前位置开始向前查找,expression是正则表达式。如果正则表达式是字符串且包含:. ^ $ / ~等特殊字符(元字符),则查找包含这些特殊字符的字符串时,一定要在它们每一个前面加上反斜杠(\)字符表示转义。
查找字符串~/yt-3.1.8,在命令行模式下输入:/\~\/yt-3\.1\.8,注意:要在
每1个标签字符前都要使用转移字符。
5、修改
在vi编辑器中修改文本文件内容的命令主要是删除指定的字符或行并输入新的字符,替换指定的字符或行。
s 删除光标所在位置的字符,且光标移动到下1个字符上。然后进入
文本编辑模式下的插入状态,等待用户输入
S 删除光标所在行,且光标仍在本行的行首,然后进入文本编辑模式下的插入状态,等待用户输入
按2次c 与S命令功能相同
C或c$ 删除光标所在位置到行尾的所有字符,且光标停留在本行的行尾,然后进入文本编辑模式下的插入状态,等待用户输入
r 用r命令后输入字符替换当前光标位置处的字符。1次只能替换1个字符,如果是相同连续的字符可以用nnr命令的形式。
R 使用该命令会使用vi进入文本编辑模式的替换状态,在屏幕的左下方显示“REPLACE(替换)"状态信息。在这种状态下,从当前光标所在的位置开始,
新输入的字符将逐个替换原有的字符,直到用户按下Esc键返回命令模式为止。
注意:s、S、C、c$命令是修改命令,它们与x、X、D、d删除命令不同的地方在于删除字符或行后vi的工作模式转变,等待用户插入字符修改。R、r是替换命令,此时vi是文本编辑模式下的替换状态而非插入状态,输入的新字符将覆盖旧字符,所以在输入时一定要注意是否覆盖了不该覆盖的字符。
6、剪切与粘贴
在文本文件编辑中,经常需要将某处的1个句子或若干行文本移动或复制到本文件的其他地方,这就需要编辑器有剪切和粘贴的功能。
vi中的缓冲区分为通用缓冲区和专用缓存区,在一般情况下,最近1次的抽取、删除、插入和修改的内容都将存放在通用缓冲区中。利用这些缓冲区可以非常方便地实现文件内容的剪切和粘贴。
按2次y 将光标所在行的内容复制到通用缓冲区,该命令也称为抽取。
p 取出通用缓冲区中的内容放在光标所在位置的后面,即粘贴。
复制多行可以使用nnyy命令。另外,D、dd、O等删除、插入命令也是以行为单位将处理的内容放入通用缓冲区的。
7、撤销操作
使用编辑器的用户都会希望有撤销操作的命令。在vi编辑器中使用u键可以恢复。
8、几个特殊的命令
J命令 合并第n行与第n+1行,使用时,将光标移动到第n行上按J键即可。
.命令 重复执行前一条操作命令。
~命令 改变光标所在位置字母的大小写,即大写变小写,小写变大写。
9、移动光标
ctrl+b 屏幕往后移动一页
ctrl+f 屏蔽往前移动一页
ctrl+u 屏幕往后移动半页
ctrl+d 屏幕往前移动半页
shift+l 光标移动到屏幕最后一行
shift+h 光标移动到屏幕第一行
shift+m 光标移动到屏幕中间一行
数字 0 移动到文件的开头,本行开始位置
G 移动到文件的最后
nG 光标移动到文件第 n 行
gg 光标移动到文件第一行,相当于 1G
$ 移动到光标所在行的末尾
^ 移动到光标所在行的行首
10、末行模式操作
在使用末行模式之前,请记住按住 'esc' 键确定忆经处理命令行模式后,再按冒号“:”即可进入末行模式。
set nu 显示行号
set nonu 隐藏行号
set ic 搜索时忽略大小写
set noic 取消搜索忽略大小写
n 跳转到文件的某一行,“n”表示一个数字,如输入数字15,再回车就会跳到文件的第15行
!cmd 运行 shell命令cmd
-------附加语法-------
ESC:%s/origanl/new/g
%s 表示替换文本。
origan 表示原文
new 表示新的内容
/g 表示全文替换,如果仅替换第一个则不需要/g
需要注意如果要替换的内容中包含特殊含义的字符,需要使用转义符转义
例如
:%s/\\/\//g 表示把所有 反斜杠 \ 替换成正斜杠 / 拆开来看
:%s 表示要替换
/ 语法分隔
\ 第一个 \ 表转义,第二个 \ 表示反斜杠
/ 语法分隔
/ \ 表转义, / 表示正斜杠
/ 语法分隔
/g 表示全文替换
vim键盘图:


相关文章:
Linux操作系统的vim常用命令和vim 键盘图
在vi编辑器的命令模式下,命令的组成格式是:nnc。其中,字符c是命令,nn是整数值,它表示该命令将重复执行nn次,如果不给出重复次数的nn值,则命令将只执行一次。例如,在命令模式下按j键表…...
SpringCloudGateway工作原理与链路图
SpringCloudGateway基本介绍 Spring Cloud Gateway 构建于Spring Boot 2.x、 Spring WebFlux和Project Reactor之上。因此,在使用 Spring Cloud Gateway 时,您可能不会应用许多熟悉的同步库(例如 Spring Data 和 Spring Security)和模式。 Spring Cloud Gateway 需要 Sprin…...
VUE2与VUE3之间的主要区别
当谈到 Vue.js 的版本时,Vue 2 和 Vue 3 是最常被提及的两个版本。下面是 Vue 2 和 Vue 3 之间的一些主要区别: 1. 性能提升: Vue 3 在底层核心重写了响应式系统,采用了 Proxy 对象,大幅提高了性能。Vue 3 还引入了静…...
CSS浮动实战,经典好文
零基础学web前端开发要怎么去学? 首先要学习的就是基础知识:html、css和JavaScript。HTML是内容,CSS是表现,JavaScript是行为。前端开发的门槛其实非常低,与服务器端语言先慢后快的学习曲线相比,前端开发的学习曲线是…...
如何搭建Nacos集群
1.搭建Nacos集群 众所周知,在实际的工作中,Nacos的生成环境下一定要部署为集群状态 其中包含3个nacos节点,然后一个负载均衡器代理3个Nacos。这里负载均衡器可以使用nginx。 我们计划的集群结构: 我就直接在本机上开三个Nacos来搭…...
未来已来!AI大模型引领科技革命
未来已来!AI大模型正以惊人的速度引领着科技革命。随着科技的发展,人工智能在各个领域展现出了非凡的能力和潜力,大模型更是成为了科技领域的明星。从自然语言处理到图像识别,从智能推荐到语音识别,大模型的应用正在改…...
VBA如何记录单元格中字符内容和格式
实例需求:Excel单元格中的字符可以设置不同的字体格式(大小、颜色等),有时需要将这些信息保存起来,以便于后续代码的处理(例如替换后恢复原字体颜色,或者统计某种指定格式字符个数等等ÿ…...
逻辑漏洞(pikachu)
#水平,垂直越权,未授权访问 通过个更换某个id之类的身份标识,从而使A账号获取(修改、删除)B账号数据 使用低权限身份的账号,发送高权限账号才能有的请求,获得其高权限操作 通过删除请求中的认…...
阿里云服务器2核4G多少钱?支持多少在线?并发数性能测试
阿里云2核4G服务器多少钱一年?2核4G配置1个月多少钱?2核4G服务器30元3个月、轻量应用服务器2核4G4M带宽165元一年、企业用户2核4G5M带宽199元一年。可以在阿里云CLUB中心查看 aliyun.club 当前最新2核4G服务器精准报价、优惠券和活动信息。 阿里云官方2…...
粘包与拆包
优质博文:IT-BLOG-CN 一、粘包出现的原因 服务端与客户端没有约定好要使用的数据结构。Socket Client实际是将数据包发送到一个缓存buffer中,通过buffer刷到数据链路层。因服务端接收数据包时,不能断定数据包1何时结束,就有可能出…...
基于QGIS的研究区域遥感影像裁切下载方法-以岳麓区为例
目录 前言 一、数据说明 1、遥感影像 2、矢量范围 二、按矢量范围导出 1、第一步、导出影像 2、第二步、设置输出格式 3、设置裁切范围 4、设置分辨率 三、按矢量范围掩膜 1、第一步、打开裁剪工具 2、第二步、参数设置 编辑 3、执行掩膜 四、webgis支持 1、生成运行…...
YOLOv8-Openvino-ByteTrack【CPU】
纯检测如下: YOLOv5-Openvino和ONNXRuntime推理【CPU】 YOLOv6-Openvino和ONNXRuntime推理【CPU】 YOLOv8-Openvino和ONNXRuntime推理【CPU】 YOLOv9-Openvino和ONNXRuntime推理【CPU】 注:YOLOv8和YOLOv9代码内容基本一致! 全部代码Github&…...
【Linux命令】tload
tload 显示系统负载状况。 详细 tload命令以图形化的方式输出当前系统的平均负载到指定的终端。假设不给予终端机编号,则会在执行tload指令的终端机显示负载情形。 语法 tload (选项)(参数)选项 -s : 指定闲时的…...
Qt 通过pdfium将网络上的pdf显示为图片
前言 遇到个需求,就是在qt客户端显示服务器上的pdf文档,文档以base64格式返回给客户端。以下是实现方法: 1、在pro文件增加以下代码: INCLUDEPATH $$PWD/PDFiumSDK/include/publicDEPENDPATH $$PWD/PDFiumSDK/include/public…...
C语言数据结构与算法——深度、广度优先搜索(DFS、BFS)
目录 一、深度优先搜索(Depth-First-Search 简称:DFS) 无向图的深度优先搜索 有向图的深度优先搜索 二、广度优先搜索(Breadth-First-Search 简称:BFS) 无向图的广度优先搜索 有向图的广度优先搜索 深…...
Golang Channel 详细原理和使用技巧
1.简介 Channel(一般简写为 chan) 管道提供了一种机制:它在两个并发执行的协程之间进行同步,并通过传递与该管道元素类型相符的值来进行通信,它是Golang在语言层面提供的goroutine间的通信方式.通过Channel在不同的 goroutine中交换数据,在goroutine之间…...
CSS的浮动属性,web前端开发工程师
了解校招 知己知彼才能百战百胜,在准备校招之前,我们先要了解校招。 什么是校招? 校招,全称校园招聘,指企业招聘那些即将毕业的学生。校招主要分为三个部分:简历筛选,笔试,面试。 …...
Dubbo的集群容错方案
Dubbo提供了多种集群容错方案来保证分布式环境下的高可用性。这些容错方案可以在服务提供者不可用时,根据不同的业务需求和场景,选择不同的策略来处理。以下是Dubbo支持的一些主要集群容错方案: 1. Failover Cluster(失败自动切换…...
两天学会微服务网关Gateway-Gateway路由规则
锋哥原创的微服务网关Gateway视频教程: Gateway微服务网关视频教程(无废话版)_哔哩哔哩_bilibiliGateway微服务网关视频教程(无废话版)共计17条视频,包括:1_Gateway简介、2_Gateway工作原理、3…...
three.js如何实现简易3D机房?(一)基础准备-下
three.js如何实现简易3D机房?(一)基础准备-上:http://t.csdnimg.cn/MCrFZ 目录 四、按需引入 五、导入模型 四、按需引入 index.vue文件中 <template><div class"three-area"><div class"three-box" ref"threeDemoRef…...
conda相比python好处
Conda 作为 Python 的环境和包管理工具,相比原生 Python 生态(如 pip 虚拟环境)有许多独特优势,尤其在多项目管理、依赖处理和跨平台兼容性等方面表现更优。以下是 Conda 的核心好处: 一、一站式环境管理:…...
【Python】 -- 趣味代码 - 小恐龙游戏
文章目录 文章目录 00 小恐龙游戏程序设计框架代码结构和功能游戏流程总结01 小恐龙游戏程序设计02 百度网盘地址00 小恐龙游戏程序设计框架 这段代码是一个基于 Pygame 的简易跑酷游戏的完整实现,玩家控制一个角色(龙)躲避障碍物(仙人掌和乌鸦)。以下是代码的详细介绍:…...
css实现圆环展示百分比,根据值动态展示所占比例
代码如下 <view class""><view class"circle-chart"><view v-if"!!num" class"pie-item" :style"{background: conic-gradient(var(--one-color) 0%,#E9E6F1 ${num}%),}"></view><view v-else …...
智慧工地云平台源码,基于微服务架构+Java+Spring Cloud +UniApp +MySql
智慧工地管理云平台系统,智慧工地全套源码,java版智慧工地源码,支持PC端、大屏端、移动端。 智慧工地聚焦建筑行业的市场需求,提供“平台网络终端”的整体解决方案,提供劳务管理、视频管理、智能监测、绿色施工、安全管…...
FFmpeg 低延迟同屏方案
引言 在实时互动需求激增的当下,无论是在线教育中的师生同屏演示、远程办公的屏幕共享协作,还是游戏直播的画面实时传输,低延迟同屏已成为保障用户体验的核心指标。FFmpeg 作为一款功能强大的多媒体框架,凭借其灵活的编解码、数据…...
条件运算符
C中的三目运算符(也称条件运算符,英文:ternary operator)是一种简洁的条件选择语句,语法如下: 条件表达式 ? 表达式1 : 表达式2• 如果“条件表达式”为true,则整个表达式的结果为“表达式1”…...
C++中string流知识详解和示例
一、概览与类体系 C 提供三种基于内存字符串的流,定义在 <sstream> 中: std::istringstream:输入流,从已有字符串中读取并解析。std::ostringstream:输出流,向内部缓冲区写入内容,最终取…...
12.找到字符串中所有字母异位词
🧠 题目解析 题目描述: 给定两个字符串 s 和 p,找出 s 中所有 p 的字母异位词的起始索引。 返回的答案以数组形式表示。 字母异位词定义: 若两个字符串包含的字符种类和出现次数完全相同,顺序无所谓,则互为…...
OpenPrompt 和直接对提示词的嵌入向量进行训练有什么区别
OpenPrompt 和直接对提示词的嵌入向量进行训练有什么区别 直接训练提示词嵌入向量的核心区别 您提到的代码: prompt_embedding = initial_embedding.clone().requires_grad_(True) optimizer = torch.optim.Adam([prompt_embedding...
css3笔记 (1) 自用
outline: none 用于移除元素获得焦点时默认的轮廓线 broder:0 用于移除边框 font-size:0 用于设置字体不显示 list-style: none 消除<li> 标签默认样式 margin: xx auto 版心居中 width:100% 通栏 vertical-align 作用于行内元素 / 表格单元格ÿ…...
