Linux——vim简介、配置方案(附带超美观的配置方案)、常用模式的基本操作
vim简介、配置方案、常用模式的基本操作
本章思维导图:
注:本章思维导图对应的xmind和.png文件都已同步导入至资源
1. vim简介
vim是Linux常用的文本编辑器,每个Linux账户都独有一个vim编辑器
本篇我们介绍vim最常用的三种模式:命令模式(command mode)、底行模式(last line mode)、插入模式(insert mode)
1.1 命令模式
-
每次打开
vim编辑器,默认进入的就是命令行模式
在这里插入图片描述

-
命令行模式下无法在打开的文件里插入任何数据,只能执行对应的指令
1.2 底行模式
-
底行模式由命令模式进入
进入方法:命令模式下输入:冒号
:,即shift + ;

- 底行模式下同样不能向打开的文件进行写操作,只能执行对应的底行命令
- 如果要从底行模式退出,按
Esc键即可。且退出到命令模式
1.3 插入模式
-
插入模式由命令模式进入
进入方法:命令模式下输入:
i或者s或者ai:表示从光标所在位置进行插入a:表示从光标的下一个位置进行插入s:表示,删除光标所在字符,再从光标位置进行插入

- 只有在插入模式下才可以对打开的文件进行写操作,即编写程序
- 如果要从插入模式退出,按
Esc键即可。且退出到命令模式
1.4 命令模式、底行模式和插入模式的进出关系

- 可以看出,命令模式是核心模式,它既可以进入插入模式,也可以进入底行模式
- 插入模式和底行模式都可以退出到命令模式
- 插入模式和底行模式不可以直接转换,必须先进入命令模式,再执行对应的命令进入
2. vim的配置

我们先用上面展示的vim编辑器写一段简单的展示代码:

可以看到,默认的Linuxvim编辑器有两大致命缺陷:
- 界面太过简单,可以说是简陋
- 编写程序时没有基本的自动缩进、高亮、自动补齐等许多
Windos编译器都有的功能,使得用起来极度不方便
2.1 .vimrc 隐藏文件
针对上述问题,Linux允许我们修改vim的配置信息,是其具有更加丰富的功能。而对vim编辑器进行修改的信息,就会放在.vimrc这个隐藏文件中。
-
在
root账户中,.vimrc这个隐藏文件默认就在root账户的家目录下:
-
而在普通账户中,
.vimrc文件不会被默认创建,需要自己手动创建:
2.2 配置vim编辑器的方法
一种方法是下载插件,但这种方法较为复杂,这里不做介绍,感兴趣的小伙伴可以上网查阅
还有一种方法就是直接向.vimrc文件写入指定内容,从而让vim编辑器具备某种指定的功能
-
例如,我们现象
.vimrc文件中输入set number 显示行号再次打开
vim编辑器,其页面就会变为:

- 这样,如果想要让自己的
vim编辑器具有某种功能,只需要在.vimrc文件中输入对应的指令就可以了
当然了,如果想要一条条的向.vimrc文件输入各种指令最终实现自己预想的美观的vim编辑器,这个过程肯定是费时且费力的。因此,博主已经为大家准备好了一个较为美观的.vimrc配置文件。先来看看效果:

如果大家想要使用这个配置方案,直接执行下面的命令即可:
sudo yum install -y curl -sLf https://gitee.com/HGtz2222/VimForCpp/raw/master/install.sh -o ./install.sh && bash ./install.sh
注:
- 如果所在的普通账户无法使用
sudo指令,请移步Linux——手把手教你解决sudo指令无法使用的问题查看具体解决方案 - 本配置方案只适用于
CentOs系统 - 最好不要在
root账号下下载
3. vim常用模式的基本操作

3.1 命令模式
3.1.1 快速移动光标
$即shift + 4:将光标快速移动到所在行的最右侧^即shift + 6:将光标快速移动到所在行的最左侧G即shift + g:将光标快速移动到文本的结束位置(最后一个字符)gg:将光标快速移动到文本的开始位置(第一个字符)
3.1.2 移动光标
可以用小键盘的⬆、⬇、⬅、➡将光标移动到对应的位置。
但是在Linux中,更推荐用
h, j, k, l这四个字母来移动光标
h:即将光标向左移动一个字符j:即将光标向下移动一个字符k:即将光标向上移用一个字符l:即将光标向右移动一个字符
实际上还有其他移动光标的方式,例如:
w:以字母为单位,将光标向右移动b:以字母为单位,将光标向左移动
3.1.3 复制与粘贴
可以用相关命令对文本的一行或者多行执行复制粘贴操作:
(n)yy:赋值当前(n)行(n)p:在光标所在行的下面粘贴(n行)
3.1.4 撤回与取消撤回
u:取消上一步执行的操作Ctrl + r:取消上一次的撤回操作
3.1.5 删除行
ndd:删除当前所在的(n)行
3.1.6 字符处理
替换字符:
(n)~:将光标后面的(n个)字符,大小变小写,小写变大写
(n)r 输入:将光标后面的(n个)字符全部替换为输入的字符
shift + r:进入替换模式,此时光标所在的字符被替换为输入的字符
删除字符:
(n)x:删除光标所在(n个)字符(向后删除)(n) + shift + x:删除光标所在(n个)字符(向前删除)
3.1.7 批量化注释和去注释
批量化注释:
- 第一步:
Ctrl + v- 第二步:
h, j, k, l选择要被注释的区域- 第三步:
shift + i- 第四步:
//- 第五步:
Esc
批量化去注释:
- 第一步:
Ctrl + v- 第二步:
h, j, k, l选择要被去注释的区域- 第三步:
d
3.1.8 多窗口之间的切换
Ctrl + ww
3.2 底行模式
保存与退出:
q(!):(强制)退出w(!):(强制)保存wq(!):(强制)保存并推出
在不退出vim编辑器的情况下使用shell命令:
! 命令
新建或者打开文件,并新开一个窗口:
vs filename
3.3 处理vim打开文件报错的情况
如果我们在用vim编辑器处理文件时错误的退出当前的编辑(例如直接关闭云服务器或者虚拟机),那么再次用vim打开相同的文件时,就会出现如下报错信息:

我们按如下的步骤解决:
-
第一步:选择
R(ecover)选项,即输入字符e,之后会进入vim编辑器,直接进入底行模式正常退出即可 -
第二步:继续用
vim打开该文件,此时同样会弹出相同的报错信息,这次选择(D)elele it选项,即输入字符d,之后就会进入vim编辑器,此时问题已经得到解决,可以正常进行编写代码了。
相关文章:
Linux——vim简介、配置方案(附带超美观的配置方案)、常用模式的基本操作
vim简介、配置方案、常用模式的基本操作 本章思维导图: 注:本章思维导图对应的xmind和.png文件都已同步导入至资源 1. vim简介 vim是Linux常用的文本编辑器,每个Linux账户都独有一个vim编辑器 本篇我们介绍vim最常用的三种模式:…...
在线预览编辑PDF::RAD PDF for ASP.NET
RAD PDF for ASP.NET作为功能最齐全的基于 HTML 的 PDF 查看器、编辑器和 ASP.NET 表单填充器,RAD PDF 为传统 PDF 解决方案提供了灵活而强大的替代方案。与 Adobe Acrobat Reader 不同,RAD PDF 几乎可以在任何现代网络浏览器中运行,…...
【赠书第4期】机器学习与人工智能实战:基于业务场景的工程应用
文章目录 前言 1 机器学习基础知识 2 人工智能基础知识 3 机器学习和人工智能的实战案例 4 总结 5 推荐图书 6 粉丝福利 前言 机器学习与人工智能是当前最热门的领域之一,也是未来发展的方向。随着科技的不断进步,越来越多的企业开始关注和投入机…...
npm封装插件打包上传后图片资源错误
问题: npm封装插件:封装的组件页面涉及使用图片资源,在封装的项目里调用图片显示正常;但是打包上传后,其他项目引入使用报错找不到图片资源;图片路径也不对 获取图片的base64方法 解决方案: 将…...
[云原生案例2.3 ] Kubernetes的部署安装 【多master集群架构高可用 ---- (二进制安装部署)】
文章目录 1. Kubernetes多Master集群高可用方案1.1 多节点Master高可用的实现过程1.2 实现高可用方法 2. 新Master节点的部署2.1 前置准备2.2 系统初始化操作2.2.1 关闭防火墙、selinux和swap分区2.2.2 修改主机名,添加域名映射2.2.3 修改内核参数2.2.4 时间同步 2.…...
归并排序(含递归和非递归版)
以梦为马,不负韶华 文章目录 引入:实现原理问题引出:递归实现:迭代实现稳定性分析:总结: 引入: 如何将两个有序数组(假设为升序)合并为一个有序数组? 双指针…...
微服务的注册发现和微服务架构下的负载均衡
文章目录 微服务注册模型服务注册与发现怎么保证高可用【1. 服务端崩溃检测】【2. 客户端容错】【3. 注册中心选型】 微服务架构下的负载均衡【1.轮询与加权轮询】【2.随机与加权随机】【3.哈希与一致性哈希】【4.最少连接数】【5.最少活跃数】【6.最快响应时间】【总结】 负载…...
从混沌到有序:sortedcontainers库的数据魔法改变你的编程体验
前言 在当今数据爆炸的时代,高效地处理和操作数据成为每位Python开发者的核心任务。在这个背景下,sortedcontainers库以其强大的有序数据结构为程序员提供了处理大规模数据的优越选择。本文将深入研究sortedcontainers库中的主要有序数据结构࿰…...
读取pdf、docx、doc、ppt、pptx并转为txt
文章目录 一、思路构建二、开始实现三、存在的问题3.1 解析doc文档遇到问题及解决方法:3.2 解析ppt文档遇到问题及解决方法: 四、读取pdf中的图片 一、思路构建 Zip文件和初始化文件放在同一个文件夹下;然后解析zip文件读取到一个新的文件夹…...
11.13/14 理解SDK框架遇到的问题
1.1.浮点数打印问题 float red_increment (target_red_value - initial_red_value) / STEPS; u8 STEPS 100; printf("绿色值每一次增量------%f\n", red_increment); 后面三个参数均为u8类型 希望采用 %f打印出每次的步进值。但是结果为空白 希望采用 %.2f打印…...
计算机网络——b站王道考研笔记
第一章 计算机网络体系结构 1.计算机网络概述 (1)概念 计算机网络是一个将分散的,具有独立功能的计算机系统,通过通信设备与线路连接起来,由功能完善的软件实现资源共享和信息传递的系统; 是互连的&#…...
Stm32_标准库_18_串口蓝牙模块_手机与蓝牙模块通信_控制LED灯亮灭
通过输入LED_ON和LED_OFF分别控制LED灯的亮与灭 接线: LED的正极接正电,负极接GPIOA_Pin1 蓝牙模块TXD接GPIOA_Pin3,VCC接正电,GND接负电 注意:USART2是APB1外设,汉字占用字节数是字符的两倍 使用: 手…...
低代码与传统开发:综合比较
近年来,低代码开发作为软件开发的趋势获得了显着的发展势头。根据 MarketsandMarkets 的数据,低代码开发市场预计将实现 28.1% 的大幅增长率,到 2025 年价值将达到 455 亿美元。这一显着增长表明了各行业和企业对低代码平台的需求和采用不断增…...
pyqt环境搭建
创建虚拟环境 # 用管理员身份运行 conda create --prefixE:\Python\envs\pyqt5stu python3.6 # 激活虚拟环境 conda activate E:\Python\envs\pyqt5stu # 退出虚拟环境 conda deactivate安装包 pip install PyQt5 -i https://pypi.douban.com/simple pip install PyQt5-tools…...
JavaScript数据类型和存储区别
目录 一、原始数据类型 二、引用数据类型 三、存储区别 四、常见错误 JavaScript是一种动态类型语言,这意味着变量可以在程序执行过程中改变其数据类型。了解JavaScript中的数据类型和它们的存储方式对于编写高效和可维护的代码至关重要。 在JavaScript中&…...
Java学习笔记(七)——面向对象编程(中级)
一、IDEA (一)常用的快捷键 (二)模版/自定义模版 二、包 (一)包的命名 (二)常用的包 (三)如何引入(导入)包 (四&am…...
详细推导MOSFET的跨导、小信号模型、输出阻抗、本征增益
目录 前言 什么是跨导 什么是小信号模型 什么是输入阻抗和输出阻抗 什么是MOS管的输出阻抗 什么是MOS管的本征增益 共源极放大电路的输入和输出阻抗 一些其它MOS拓扑电路的增益 负载为恒流源 负载为二极管 前言 相信很多人在学习集成电路领域的时候 都对MOS管的…...
循环2作业
第一题 #include <stdio.h>int main() {int n,f,y,i,j;scanf("%d",&n);for(y0;y<100;y)for(f0;f<100;f)if(200*y2*ff*100y-n){printf("%d.%d",y,f);return 0;}printf("%d No Solution",n);return 0; }第二题 #include<stdi…...
一个车厢号码识别算法(2005年的老程序----ccc)
一个车厢号码识别算法(2005年的老程序----ccc) 2023-09-18 ccc 程序的识别效果 对图中的车厢号码部分用上下两条线限定分为,然后进行识别。 从上面的识别效果可以看出,识别算法具有一定的鲁棒性,能够适应车厢号码的各…...
「Verilog学习笔记」优先编码器电路①
专栏前言 本专栏的内容主要是记录本人学习Verilog过程中的一些知识点,刷题网站用的是牛客网 timescale 1ns/1ns//优先编码器电路1 //电路的优先顺序是,从9到1,高级到低级 //9个输入端:I端,4个输出端:Y端&am…...
挑战杯推荐项目
“人工智能”创意赛 - 智能艺术创作助手:借助大模型技术,开发能根据用户输入的主题、风格等要求,生成绘画、音乐、文学作品等多种形式艺术创作灵感或初稿的应用,帮助艺术家和创意爱好者激发创意、提高创作效率。 - 个性化梦境…...
React hook之useRef
React useRef 详解 useRef 是 React 提供的一个 Hook,用于在函数组件中创建可变的引用对象。它在 React 开发中有多种重要用途,下面我将全面详细地介绍它的特性和用法。 基本概念 1. 创建 ref const refContainer useRef(initialValue);initialValu…...
蓝桥杯 2024 15届国赛 A组 儿童节快乐
P10576 [蓝桥杯 2024 国 A] 儿童节快乐 题目描述 五彩斑斓的气球在蓝天下悠然飘荡,轻快的音乐在耳边持续回荡,小朋友们手牵着手一同畅快欢笑。在这样一片安乐祥和的氛围下,六一来了。 今天是六一儿童节,小蓝老师为了让大家在节…...
【CSS position 属性】static、relative、fixed、absolute 、sticky详细介绍,多层嵌套定位示例
文章目录 ★ position 的五种类型及基本用法 ★ 一、position 属性概述 二、position 的五种类型详解(初学者版) 1. static(默认值) 2. relative(相对定位) 3. absolute(绝对定位) 4. fixed(固定定位) 5. sticky(粘性定位) 三、定位元素的层级关系(z-i…...
【数据分析】R版IntelliGenes用于生物标志物发现的可解释机器学习
禁止商业或二改转载,仅供自学使用,侵权必究,如需截取部分内容请后台联系作者! 文章目录 介绍流程步骤1. 输入数据2. 特征选择3. 模型训练4. I-Genes 评分计算5. 输出结果 IntelliGenesR 安装包1. 特征选择2. 模型训练和评估3. I-Genes 评分计…...
【7色560页】职场可视化逻辑图高级数据分析PPT模版
7种色调职场工作汇报PPT,橙蓝、黑红、红蓝、蓝橙灰、浅蓝、浅绿、深蓝七种色调模版 【7色560页】职场可视化逻辑图高级数据分析PPT模版:职场可视化逻辑图分析PPT模版https://pan.quark.cn/s/78aeabbd92d1...
算法:模拟
1.替换所有的问号 1576. 替换所有的问号 - 力扣(LeetCode) 遍历字符串:通过外层循环逐一检查每个字符。遇到 ? 时处理: 内层循环遍历小写字母(a 到 z)。对每个字母检查是否满足: 与…...
如何更改默认 Crontab 编辑器 ?
在 Linux 领域中,crontab 是您可能经常遇到的一个术语。这个实用程序在类 unix 操作系统上可用,用于调度在预定义时间和间隔自动执行的任务。这对管理员和高级用户非常有益,允许他们自动执行各种系统任务。 编辑 Crontab 文件通常使用文本编…...
数学建模-滑翔伞伞翼面积的设计,运动状态计算和优化 !
我们考虑滑翔伞的伞翼面积设计问题以及运动状态描述。滑翔伞的性能主要取决于伞翼面积、气动特性以及飞行员的重量。我们的目标是建立数学模型来描述滑翔伞的运动状态,并优化伞翼面积的设计。 一、问题分析 滑翔伞在飞行过程中受到重力、升力和阻力的作用。升力和阻力与伞翼面…...
规则与人性的天平——由高考迟到事件引发的思考
当那位身着校服的考生在考场关闭1分钟后狂奔而至,他涨红的脸上写满绝望。铁门内秒针划过的弧度,成为改变人生的残酷抛物线。家长声嘶力竭的哀求与考务人员机械的"这是规定",构成当代中国教育最尖锐的隐喻。 一、刚性规则的必要性 …...
