【Linux】编辑器——vim(最小集+指令集+自动化配置)
目录
1.vim最小集
1.1 vim的三种模式
1.2 vim的基本操作
2.vim指令集
2.1 命令模式指令集
移动光标
删除文字
复制
替换
撤销上一次操作
更改
跳至指定的行
2.2 底行模式指令集
列出行号
跳到文件中的某一行
查找字符
保存文件
多文件操作
3.如何配置vim
配置文件的位置
常用配置选项
自动化配置
Linux中有这样两款编辑器 vi、vim。它们都是多模式编辑器,主要区别在于vim是vi的升级版。它不仅兼容vi的所有指令,而且还有一些新的特性在里面。
1.vim最小集
1.1 vim的三种模式
vim作为多模式编辑器,有多种不同的模式,在这里我们主要介绍 3 种模式,分别是命令模式、插入模式、底行模式。各模式所具有的功能如下:
命令模式
控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入底行模式下,或者进入到插入模式下。
插入模式
只有在插入模式下,才可以做内容输入,按「ESC」键可回到命令行模式。该模式是我们后面用的最频繁的编辑模式。
底行模式
文件保存或退出,也可以进行文件替换,查找字符串,列出行号等操作。 在命令模式下,shift+: 即可进入该模式。若要查看你的所有模式:打开vim,在底行模式直接输入help vim-modes。
1.2 vim的基本操作
① 如何启动 vim?
vim + 文件名
注意:启动 vim 后,默认在命令模式,需要切换插入模式才能输入内容。
② 「命令模式」切换至 「插入模式」
在命令模式下输入:
i:当前光标位置不变,进入插入模式;
a:光标从当前位置自动向后移动一位,进入插入模式;
o:从当前光标所在行向下另起一行,进入插入模式。
当左下角出现 INSERT 的字样时,证明处于插入模式。
③「插入模式」 切换至 「命令模式」
「ESC」即可。
④ 「命令模式」切换至 「底行模式」
shift + ; (其实就是 :)
⑤如何退出 vim?
在底行模式下
输入 w :保存当前文件;
输入 wq:保存并退出;
输入:q! :不保存,强制退出。
2.vim指令集
2.1 命令模式指令集
移动光标
▧ 小写英文字母「h」、「j」、「k」、「l」,分别控制光标左、下、上、右移一格;
▧ 「 $ 」:移动到光标所在行的“行尾”;
▧ 「^」:移动到光标所在行的“行首”;
▧ 「w」:光标跳到下个单词的开头;
▧ 「e」:光标跳到下个单词的字尾;
▧ 「b」:光标回到上个单词的开头;
▧ 「nl」:光标移到该行的第n个位置,如:5l,56l;
▧ [gg]:进入到文本开始;
▧ 「G」:移动到文章的最后;
▧ [shift+g]:进入文本末端;
▧ 「ctrl」+「b」:屏幕往“后”移动一页;
▧ 「ctrl」+「f」:屏幕往“前”移动一页;
▧ 「ctrl」+「u」:屏幕往“后”移动半页;
▧ 「ctrl」+「d」:屏幕往“前”移动半页;
删除文字
▧ 「x」:每按一次,删除光标所在位置的一个字符;
▧ 「nx」:例如,「6x」表示删除光标所在位置的“后面(包含自己在内)”6个字符;
▧ 「X」:大写的X,每按一次,删除光标所在位置的“前面”一个字符
▧ 「nX」:例如,「20X」表示删除光标所在位置的“前面”20个字符
▧ 「dd」:删除光标所在行;
▧ 「ndd」:从光标所在行开始删除n行;
复制
▧ 「yw」:将光标所在之处到字尾的字符复制到缓冲区中。
▧ 「nyw」:复制n个字到缓冲区
▧ 「yy」:复制光标所在行到缓冲区。
▧ 「nyy」:例如,「6yy」表示拷贝从光标所在的该行“往下数”6行文字。
▧ 「p」:将缓冲区内的字符贴到光标所在位置。
注意:所有与“y”有关的复制命令都必须与“p”配合才能完成复制与粘贴功能。
替换
▧ 「r」:替换光标所在处的字符。
▧ 「R」:持续替换光标所到之处的字符,直到按下「ESC」键为止。
撤销上一次操作
▧ 「u」:如果您误执行一个命令,可以马上按下「u」,回到上一个操作。按多次“u”可以执行多次恢复。
▧ 「ctrl + r」: 对撤销进行恢复
更改
▧ 「cw」:更改光标所在处的字到字尾处
▧ 「cnw」:例如,「c3w」表示更改3个字
跳至指定的行
▧ 「ctrl」+「g」:列出光标所在行的行号。
▧ 「nG」:例如,「15G」,表示移动光标至文章的第15行行首
2.2 底行模式指令集
在命令模式下输入「:」进入底行模式。
列出行号
▧ 「set nu」: 输入「set nu」后,会在文件中的每一行前面列出行号。
跳到文件中的某一行
▧ 「n」:n表示一个数字,在冒号后输入一个数字,再按回车键就会跳到该行了,如输入数字15,再回车,就会跳到文章的第15行。
查找字符
▧ 「/关键字」: 先按「/」键,再输入您想寻找的字符,如果第一次找的关键字不是您想要的,可以一直按「n」会往后寻找到您要的关键字为止。
▧ 「?关键字」:先按「?」键,再输入您想寻找的字符,如果第一次找的关键字不是您想要的,可以一直按「n」会往前寻找到您要的关键字为止。
保存文件
▧ 「w」: 在冒号输入字母「w」就可以将文件保存起来离开vim
▧ 「q」:按「q」就是退出,如果无法离开vim,可以在「q」后跟一个「!」强制离开vim。
▧ 「wq」:一般建议离开时,搭配「w」一起使用,这样在退出的时候还可以保存文件。
多文件操作
▧ 「vs filename」分屏打开并编辑另一个文件filename;
▧ 「ctrl ww」切换光标到另一个文件。
3.如何配置vim
原生的vim操作手感以及视图在使用时略显不适,我们可以通过vim配置文件对vim进行美化。美化的作用如同将记事本配置为Visual Studio 2022,可以为我们书写代码提供很好的体验。
配置文件的位置
▞ 在目录 /etc/ 下面,有个名为vimrc的文件,这是系统中公共的vim配置文件,对所有用户都有效。
▞ 而在每个用户的主目录下,都可以自己建立私有的配置文件,命名为:“.vimrc”。例如,/root目录下,通常已经存在一个.vimrc文件。
▞ 切换用户成为自己执行 su ,进入自己的主工作目录,执行 cd ~
▞ 打开自己目录下的.vimrc文件,执行vim .vimrc
常用配置选项
▞ 设置语法高亮: syntax on;
▞ 显示行号: set nu;
▞ 设置缩进的空格数为4: set shiftwidth=4;
...
此处不过多介绍,可自行搜索。我的建议是。手动配置既耗费时间精力又容易遇到各种各样的问题,所以我比较推荐自动化配置。
自动化配置
▞ 自动化配置只需要输入一条指令即可,有需要的小伙伴直接私信即可,随时都在。
▞ 如图为自动化配置vim后的页面:
相关文章:

【Linux】编辑器——vim(最小集+指令集+自动化配置)
目录 1.vim最小集 1.1 vim的三种模式 1.2 vim的基本操作 2.vim指令集 2.1 命令模式指令集 移动光标 删除文字 复制 替换 撤销上一次操作 更改 跳至指定的行 2.2 底行模式指令集 列出行号 跳到文件中的某一行 查找字符 保存文件 多文件操作 3.如何配置vim 配…...

Centos7+Xshell+Jenkins堆装
windows系统崩坏,重装测试类工具,心情崩了 windows硬盘损坏前,运行应用具慢。。。。。。慢着慢着就走了 从前部署在本地的jenkins,python,gitblit等相关脚本都凉透了,所以这次把服务部署到Centos7上…...

Android system实战 — Android R(11) 进程保活白名单
Android system实战 — Android R 进程保活白名单0. 前言1. 具体实现1.1 准备工作1.2 源码实现1.2.1 源码1.2.2 diff文件0. 前言 最近在Android R上实现一些需求,进行记录一下,关于进程保活的基础知识可以参考Android system — 进程生命周期与ADJ&#…...

oracle表 分组,并查每组第一条
oracle主要用到的函数:OVER(PARTITION BY) mysql主要用到的函数:LIMIT (用到3个地方:分组列、组内排序列、表名) oracle: select t.* from ( select a.*, ROW_NUMBER() OVER (PARTITION BY 分组列 ORDER BY 组内排…...

Java代码弱点与修复之——DE: Dropped or ignored exception(无视或忽略异常)
弱点描述 Dropped or ignored exception(DE)指的是在代码中抛出的异常被捕获后被无视或忽略了,而不是被适当地处理。这种情况通常发生在程序员没有处理异常或处理异常时不小心忽略了异常的情况下。 Dropped or ignored exception会导致程序无法正常工作,因为异常会阻塞程…...

JavaEE简单示例——动态SQL之更新操作<set>元素
简单介绍: 在之前我们做的学生管理系统的时候,曾经有一个环节是修改学生的数据。我们在修改的时候是必须将student对象的三个属性全部填入信息,然后全部修改才可以,这样会造成一个问题就是在我们明明只需要修改一个属性的时候却要…...

【极海APM32替代笔记】低功耗模式配置及配置汇总
【极海APM32替代笔记】低功耗模式配置及配置汇总 文章总结:(后续更新以相关文章为准) 【STM32笔记】低功耗模式、WFI命令等进入不了休眠的可能原因(系统定时器SysTick一直产生中断) 【STM32笔记】HAL库低功耗模式配置…...

攻击者失手,自己杀死了僵尸网络 KmsdBot
此前,Akamai 的安全研究员披露了 KmsdBot 僵尸网络,该僵尸网络主要通过 SSH 爆破与弱口令进行传播。在对该僵尸网络的持续跟踪中,研究人员发现了一些有趣的事情。 C&C 控制 对恶意活动来说,最致命的就是夺取对 C&C 服务…...

东阿县高新技术企业认定条件和优惠政策 山东同邦科技分享
东阿县高新技术企业认定条件和优惠政策 山东同邦科技分享 高新技术企业 在《国家重点支持的高新技术领域》内,持续进行研究开发与技术成果转化,形成企业核心自主知识产权,并以此为基础开展经营活动,在中国境内(不包…...

【基础算法】哈希表(拉链法)
🌹作者:云小逸 📝个人主页:云小逸的主页 📝Github:云小逸的Github 🤟motto:要敢于一个人默默的面对自己,强大自己才是核心。不要等到什么都没有了,才下定决心去做。种一颗树,最好的时间是十年前…...

硬件学习 软件Cadence day07 PCB 底板电路图布线
1.根据原理图的元器件, 选择在 PCB 芯片制作的元器件 (allegro中原理图和pcb中元件的交互) 1.首先完成下列操作 可以尝试先关闭再打开, 等下操作的时候就好 发现新增的发光物体!! 2.完成操作 ,…...

SkyWalking仪表盘使用
Skywalking仪表盘使用 1 仪表盘 作用:查看被监控服务的运行状态。 1)监控面板 1.1 APM APM:应用性能管理,通过各种探针采集数据,收集关键指标,同时搭配数据呈现以实现对应用程序性能管理和故障管理的系统化解决方案…...

面渣逆袭:分布式十二问,万字图文详解
大家好,我是老三,不管今年金三银四如何,面渣逆袭系列继续,这期我们来看看分布式。 分布式理论 1. 说说CAP原则? CAP原则又称CAP定理,指的是在一个分布式系统中,Consistency(一致性…...

设计模式C++实现23:中介者模式(Mediator)
部分内容参考大话设计模式第25章;本实验通过C语言实现。 一 原理 意图:用一个中介对象来封装一系列对象的交互,中介者使得各个对象不需要显示地相互引用,从而使耦合松散,而且可以独立地改变它们之间的交互。 上下文…...

Java方法【未完待续】
目录 前言 一、什么是方法? 二、方法的定义和调用 方法的定义 方法的调用 三、方法的重载 重载规则 实现理论 总结 前言 随着对Java这一编程语言的深入学习,大家可能会遇到一个熟悉又陌生的词——方法,其实Java方法就是我们学习C/C时…...

(考研湖科大教书匠计算机网络)第六章应用层-第一、二节:应用层概述和C/S及P2P
获取pdf:密码7281专栏目录首页:【专栏必读】考研湖科大教书匠计算机网络笔记导航 文章目录一:应用层概述二:客户/服务器(C/S)和对等(P2P)方式(1)客户/服务器&…...

禅道bug提醒脚本部署
环境准备 nginxpython3 服务器目录 以下目录为自定义配置,需在 nginx 默认配置文件的http{}内添加 include /www/conf/*.conf; 才会生效 /www ├── conf "存放配置文件 │ └── lowCode.zyl.conf "低代码bug统计页配置 ├── wwwlogs "存…...

利用spring的retry重试编写Feign远程调用重试
自定义注解FeignRetry为了解决上面提到的问题,让Feign调用的每个接口单独配置不同的重试机制。我们使用了面向切面编程并编写了一个自定义注解:FeignRetry。此注释的工作方式类似于Retryable的包装器,并与其共享相同的规范以避免混淆。Target…...

Docker启动RabbitMQ,实现生产者与消费者
目录 一、Docker拉取镜像并启动RabbitMQ 二、Hello World (一)依赖导入 (二)消息生产者 (三)消息消费者 三、实现轮训分发消息 (一)抽取工具类 (二)启…...

【C语言】函数栈帧的创建与销毁
Yan-英杰的主页 悟已往之不谏 知来者之可追 目录 0.ebp和esp是如何来维护栈帧的呢? 1.为什么局部变量的值不初始化是随机的? 2.局部变量是怎么创建的? 3 .函数是如何传参的?传参的顺序是怎样的 4.函数是如何调用的 …...

【Git】使用Git上传项目到远程仓库Gitee码云步骤详解
电脑里存放了很多项目,有的备份,有的没备份,如果不仔细分类管理的话,时间一长,到时看到那就会觉得非常杂乱,很难整理,这里有一个叫源代码托管,用过它的都知道,方便管理和…...

Head First设计模式---3.装饰者模式
3.1装饰者模式 亦称: 装饰者模式、装饰器模式、Wrapper、Decorator 装饰模式是一种结构型设计模式, 允许你通过将对象放入包含行为的特殊封装对象中来为原对象绑定新的行为。 举个例子:天气很冷,我们一件一件穿衣服,…...

Python 算法交易实验48 表字段设计
说明 虽然说的是表,实际上用的是Mongo集合 基于ADBS(APIFunc DataBase Service)可以构造一个供后续研究、生产长时间使用的数据基础,这个基础包括了: 1 队列服务。通过队列,数据可以通过API实现零担和批量两种模式的快速存储。2 …...

库存管理系统-课后程序(JAVA基础案例教程-黑马程序员编著-第六章-课后作业)
【案例6-1】 库存管理系统 【案例介绍】 1.任务描述 像商城和超市这样的地方,都需要有自己的库房,并且库房商品的库存变化有专人记录,这样才能保证商城和超市正常运转。 本例要求编写一个程序,模拟库存管理系统。该系统主要包…...

【极海APM32替代笔记】HAL库低功耗STOP停止模式的串口唤醒(解决进入以后立马唤醒、串口唤醒和回调无法一起使用、接收数据不全的问题)
【极海APM32替代笔记】HAL库低功耗STOP停止模式的串口唤醒(解决进入以后立马唤醒、串口唤醒和回调无法一起使用、接收数据不全的问题) 【STM32笔记】低功耗模式配置及避坑汇总 前文: blog.csdn.net/weixin_53403301/article/details/128216…...

Python类变量和实例变量(类属性和实例属性)
无论是类属性还是类方法,都无法像普通变量或者函数那样,在类的外部直接使用它们。我们可以将类看做一个独立的空间,则类属性其实就是在类体中定义的变量,类方法是在类体中定义的函数。 在类体中,根据变量定义的位置不…...

Glide加载图片
使用Glide加载图片,默认情况下在内存中缓存该图片。这样的情况下如果我们保存头像在某个路径,当再次更换头像时可能由于缓存问题,UI上更新的不及时。 默认加载图片方式: Glide.with(context).load(coverPath).error(R.drawable.a…...

有关时间复杂度和空间复杂度的练习
目录 一、消失的数字 二、轮转数组 三、 单选题 一、消失的数字 数组nums包含从0到n的所有整数,但其中缺了一个。请编写代码找出那个缺失的整数。你有办法在 O(n) 时间内完成吗? 注意:本题相对书上原题稍作改动 示例 1: 输入…...

linux服务器nfs数据挂载
参考:https://blog.csdn.net/qq_43721935/article/details/119889841?from_wecom1 1、NFS 介绍 NFS 即网络文件系统(Network File-System),可以通过网络让不同机器、不同系统之间可以实现文件共享。通过 NFS,可以访问…...

Python 自动化测试必会技能板块—unittest框架
说到 Python 的单元测试框架,想必接触过 Python 的朋友脑袋里第一个想到的就是 unittest。的确,作为 Python 的标准库,它很优秀,并被广泛应用于各个项目。但其实在 Python 众多项目中,主流的单元测试框架远不止这一个。…...