【Linux基础】Vim保姆级一键配置教程(手把手教你把Vim打造成高效率C++开发环境)
目录
一、前言
二、安装Vim
三、原始Vim编译器的缺陷分析
四、Vim配置
🥝预备知识----.vimrc 隐藏文件
🍋手动配置 Vim --- (不推荐)
🍇自动化一键配置 Vim --- (强烈推荐)
✨功能演示
五、共勉
一、前言
Vim作为当下最受欢迎的文本--编译器--之一,不仅具有强大的文本编辑功能,还提供了高度的可定制性。
但是原始的Vim的,只能满足键盘的简单输入,相比于VS编译器来说,它的使用相当麻烦:无法自动缩进,自动补全,用起来得一个字一个字的打,这还不如用word,至少还有个括号匹配。
虽然Vim提供了高度的可定制性,用户可以根据自己的喜好自定义配置,并且通过自己编写插件或者使用现有的插件来扩展Vim的功能。然而对于大部分初学者来说,花太多时间再Vim配置上,显然会劝退一大批人。
所有本次博客就来讲解一下如何一键配置Vim,完成高级的编译环境搭建。

二、安装Vim
在具体上手之前,我们总得下载好它吧。那么怎么查看自己是否已经下载好了 vim 呢?
- 其实很简单,我们只需在命名行输入——vim ,如果有以下界面,即表示已经安装好了。


- 那么此时很多下伙伴是不是就退不出来了呀在当前的页面,不要慌,当我们想退出当面页面也很简单,具体如下:

- 当我们输入没有弹出这个页面时,即表示当前的机器上并没有安装 vim ,此时我们需要对其进行操作(不知道各位小伙伴还知不知道安装的指令),具体指令如下:
sudo yum -y install vim //普通用户
yum -y install vim //超级用户
三、原始Vim编译器的缺陷分析
我们先用上面展示的
vim编辑器写一段简单的展示代码:

可以看到,默认的Linux -- vim编辑器 有 三大致命缺陷:
- 界面太过简单,可以说是简陋
- 编写程序时没有基本的自动缩进、高亮、自动补齐等许多
Windos编译器都有的功能,使得用起来极度不方便 - 没有代码查错功能
由于这些缺陷,导致我们在写代码的时候效率大大下降,所有需要进行 --- Vim升级配置
四、Vim配置
🥝预备知识----.vimrc 隐藏文件
针对上述问题,Linux允许我们修改
vim的配置信息,是其具有更加丰富的功能。而对vim编辑器进行修改的信息,就会放在.vimrc这个隐藏文件中。
- 在
root账户中,.vimrc这个隐藏文件默认就在root账户的家目录下:

- 而在普通账户中,
.vimrc文件不会被默认创建,需要自己手动创建:

【注意】:vim的配置文件有两处:
(1) 全局配置文件( /root )------ 强烈 不 推荐
此文件的配置会对系统内所有用户有效,包括root用户。
(2) 单用户配置文件( /home/xxx/.vimrc )----- 推荐
此文件的配置只对用户xxx有效。这里xxx代表用户名,比如用户名是sun,则修改/home/sun/.vimrc。如果当前登录用户就是sun,也可以直接修改~/.vimrc,因为在linux系统中符号 ~ 等同于用户的家路径,按照此处例子即为/home/sun。
🍋手动配置 Vim --- (不推荐)
这种方法就是直接向
.vimrc文件写入指定内容,从而让vim编辑器具备某种指定的功能
- 例如:在原始的 vim编译器中,不存在行号

- 首先,用 Vim 打开 Vim配置文件 .vimrc

- 在配置文件中,加入我们需要的行号 ---- set number

- 再次打开
vim编辑器,其页面就会变为:

在此,由于手动去配置非常繁琐,所以在此就不继续展示。感兴趣的小伙伴可以参考以下文章,按照上述例子,去实现一个自己理想化的 --- Vim 编辑环境
- 有关vim的一些配置可以参考一下这篇文章 ——> .vimrc文件配置
- 你可以根据自己的喜好去配置vim,打造一个专属于自己的编辑器
🍇自动化一键配置 Vim --- (强烈推荐)
当然,你肯定会任何这么一条条去配置不是要累死人了,那样的好你可以选择自动化配置,只需要打上一条命令即可
为了简化这一步骤,有大佬就帮我们做了这样的一件事,我们直接用就可以了,以下两个使我感觉还不错的,大家可以借鉴一番:
- a)大家可以在 gitee 上搜索【vimforcpp】-- 推荐
- b)其次还有一款 github 上的:【Vim配置】

- 我们可以新建一个用户来进行配置

- 输入
root的密码后就可以进行安装配置了

注意:因为这是从gitee上面拿过来的,所以需要你的系统中装有git才行
① 使用
git --version查看自己的系统中是否有安装git② 没安装的话使用
yum install -y git稍等一会就可以安装好了
- 很快就可以配置好了,接下去手动敲一下这句命令是你的家目录底下产生一个
.bashrc的文件让vim的配置生效即可 - 来到家目录观察一下就可以看到配置完成了,然后再进去
.vimrc这个配置文件看看

- 可以看到进去后配置就看到自动化配置就完成了

✨功能演示

注:
- 如果所在的普通账户无法使用
sudo指令,请关注我的下一篇文章哦 - 本配置方案只适用于
CentOs 7系统 - 最好不要在
root账号下下载

五、共勉
以下就是我对 Vim保姆级一键配置教程 的理解,如果有不懂和发现问题的小伙伴,请在评论区说出来哦,同时我还会继续更新对 Vim 的理解,请持续关注我哦!!!

相关文章:
【Linux基础】Vim保姆级一键配置教程(手把手教你把Vim打造成高效率C++开发环境)
目录 一、前言 二、安装Vim 三、原始Vim编译器的缺陷分析 四、Vim配置 🥝预备知识----.vimrc 隐藏文件 🍋手动配置 Vim --- (不推荐) 🍇自动化一键配置 Vim --- (强烈推荐) ✨功能演示 五、共勉 一、前言 Vim作为…...
Gartner发布准备应对勒索软件攻击指南:勒索软件攻击的三个阶段及其防御生命周期
攻击者改变了策略,在某些情况下转向勒索软件。安全和风险管理领导者必须通过提高检测和预防能力来为勒索软件攻击做好准备,同时还要改进其事后应对策略。 主要发现 勒索软件(无加密的数据盗窃攻击)是攻击者越来越多地使用的策略。…...
IB 公式解析
IB损失 自我感悟 根据对决策边界的影响程度来分配权重。影响程度越大,分配到的权重越小;影响程度越小,分配到的权重越大。 最后其实就是平衡因子和交叉熵损失的输出的乘积 公式 3.2. Influence Function 影响函数允许我们在移除样本时估…...
开发辅助工具的缩写
开发辅助工具的缩写有很多,这些工具通常是为了提高软件开发效率、代码质量和团队协作效率而设计的。以下是一些常见的开发辅助工具及其缩写: IDE - Integrated Development Environment(集成开发环境) VCS - Version Control Sys…...
linux程序分析命令(一)
linux程序分析命令(一) **ldd:**用于打印共享库依赖。这个命令会显示出一个可执行文件所依赖的所有共享库(动态链接库),这对于解决运行时库依赖问题非常有用。**nm:**用于列出对象文件的符号表。这个命令可以显示出定…...
MYSQL数据库-SQL语句
数据库相关概念 名称全称简称数据库存储数据的仓库,数据是有组织的进行存储DataBase(DB)数据库管理系统操纵和管理数据库的大型软件DataBase Management System(DBMS)SQL操作关系型数据库的编程语言,定义了一套操作关系型数据库统一标准Structured Quer…...
MyBatis认识
一、定义 MyBatis是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO(Plain Old Java O…...
【WEEK11】 【DAY6】Employee Management System Part 7【English Version】
2024.5.11 Saturday Continued from 【WEEK11】 【DAY5】Employee Management System Part 6【English Version】 Contents 10.8. Delete and 404 Handling10.8.1. Modify list.html10.8.2. Modify EmployeeController.java10.8.3. Restart10.8.4. 404 Page Handling10.8.4.1. …...
【52】Camunda8-Zeebe核心引擎-Clustering与流程生命周期
Clustering集群 Zeebe本质是作为一个brokers集群运行,形成一个点对点网络。在这个网络中,所有brokers的功能与服务都相同,没有单点故障。 Gossip协议 Zeebe实现了gossip协议,并借此知悉哪些broker当前是集群的一部分。 集群使用…...
从零开始的软件测试学习之旅(八)jmeter线程组参数化及函数学习
jmeter线程组参数化及函数学习 Jmeter基础基本使用流程组件与元件 线程组线程的执行方式Jmeter组件执行顺序 常见属性设置查看结果数的作用域举例 Jmeter参数化实现方式1.用户定义参数2.用户参数3.函数4.csv数据文件设置 每日复习 Jmeter基础 基本使用流程 启动项目案例 启动…...
图文并茂:解析Spring Boot Controller返回图片的三种方式
欢迎来到我的博客,代码的世界里,每一行都是一个故事 图文并茂:解析Spring Boot Controller返回图片的三种方式 前言使用Base64编码返回图片使用byte数组返回图片使用Resource对象返回图片图片格式转换与性能对比 前言 在互联网的世界里&…...
问题处理记录 | 表输出报错 Packet for query is too large (5,214,153 > 4,194,304).
这个错误是由于MySQL服务器接收到的查询数据包太大而引起的。具体来说,错误消息中提到的数据包大小为5,214,153字节,而MySQL服务器默认只接受最大为4,194,304字节的数据包。 要解决这个问题,你可以尝试通过修改MySQL服务器的配置来增大max_a…...
数据结构_栈和队列(Stack Queue)
✨✨所属专栏:数据结构✨✨ ✨✨作者主页:嶔某✨✨ 栈: 代码:function/数据结构_栈/stack.c 钦某/c-language-learning - 码云 - 开源中国 (gitee.com)https://gitee.com/wang-qin928/c-language-learning/blob/master/function/…...
基于docker 的elasticsearch冷热分离及生命周期管理
文章目录 冷热集群架构的应用场景冷热集群架构的优势冷热集群架构实战搭建集群 索引生命周期管理认识索引生命周期索引生命周期管理的历史演变索引生命周期管理的基础知识Rollover:滚动索引 冷热集群架构的应用场景 某客户的线上业务场景如下:系统每天增…...
pikachu靶场(xss通关教程)
(注:若复制注入代码攻击无效,请手动输入注入语句,在英文输入法下) 反射型xss(get型) 1.打开网站 发现有个框,然后我们在框中输入一个“1”进行测试, 可以看到提交的数据在url处有显示…...
实验0.0 Visual Studio 2022安装指南
Visual Studio 2022 是一个功能强大的开发工具,对于计算机专业的学生来说,它不仅可以帮助你完成学业项目,还能为你将来的职业生涯打下坚实的基础。通过学习和使用 Visual Studio,你将能够更高效地开发软件,并在编程领域…...
数据结构之----线性表
线性表分为 顺序存储结构 和 链式存储结构 线性表的顺序存储结构: 线性表的顺序存储结构,指的是用一段地址连续的存储单元依次存储线性表的数据元素。 1,顺序表的结构: #define MAXSIZE 20 typedef int El…...
thinkphp5.1 模型auto
在ThinkPHP5.1中,模型的自动完成功能可以通过在模型类中定义auto属性来实现。这个属性是一个数组,包含了需要自动填充的字段和对应的处理规则。 以下是一个简单的例子,展示了如何在ThinkPHP5.1的模型中使用自动完成功能: <?…...
企业微信创建应用(一)
登录到企业微信后台管理(https://work.weixin.qq.com/)进入自建应用(应用管理-应用-创建应用) 3.查看参数AgentId和 Secret 4.企业微信查看效果...
Cosmo Bunny Girl
可爱的宇宙兔女郎的3D模型。用额外的骨骼装配到Humanoid上,Apple混合了形状。完全模块化,包括不带衣服的身体。 技术细节 内置,包括URP和HDRP PDF。还包括关于如何启用URP和HDRP的说明。 LOD 0:面:40076,tris 76694,verts 44783 装配了Humanoid。添加到Humanoid中的其他…...
XCTF-web-easyupload
试了试php,php7,pht,phtml等,都没有用 尝试.user.ini 抓包修改将.user.ini修改为jpg图片 在上传一个123.jpg 用蚁剑连接,得到flag...
突破不可导策略的训练难题:零阶优化与强化学习的深度嵌合
强化学习(Reinforcement Learning, RL)是工业领域智能控制的重要方法。它的基本原理是将最优控制问题建模为马尔可夫决策过程,然后使用强化学习的Actor-Critic机制(中文译作“知行互动”机制),逐步迭代求解…...
关于nvm与node.js
1 安装nvm 安装过程中手动修改 nvm的安装路径, 以及修改 通过nvm安装node后正在使用的node的存放目录【这句话可能难以理解,但接着往下看你就了然了】 2 修改nvm中settings.txt文件配置 nvm安装成功后,通常在该文件中会出现以下配置&…...
【JVM】- 内存结构
引言 JVM:Java Virtual Machine 定义:Java虚拟机,Java二进制字节码的运行环境好处: 一次编写,到处运行自动内存管理,垃圾回收的功能数组下标越界检查(会抛异常,不会覆盖到其他代码…...
条件运算符
C中的三目运算符(也称条件运算符,英文:ternary operator)是一种简洁的条件选择语句,语法如下: 条件表达式 ? 表达式1 : 表达式2• 如果“条件表达式”为true,则整个表达式的结果为“表达式1”…...
C++ 求圆面积的程序(Program to find area of a circle)
给定半径r,求圆的面积。圆的面积应精确到小数点后5位。 例子: 输入:r 5 输出:78.53982 解释:由于面积 PI * r * r 3.14159265358979323846 * 5 * 5 78.53982,因为我们只保留小数点后 5 位数字。 输…...
Android15默认授权浮窗权限
我们经常有那种需求,客户需要定制的apk集成在ROM中,并且默认授予其【显示在其他应用的上层】权限,也就是我们常说的浮窗权限,那么我们就可以通过以下方法在wms、ams等系统服务的systemReady()方法中调用即可实现预置应用默认授权浮…...
Go 语言并发编程基础:无缓冲与有缓冲通道
在上一章节中,我们了解了 Channel 的基本用法。本章将重点分析 Go 中通道的两种类型 —— 无缓冲通道与有缓冲通道,它们在并发编程中各具特点和应用场景。 一、通道的基本分类 类型定义形式特点无缓冲通道make(chan T)发送和接收都必须准备好࿰…...
CVPR2025重磅突破:AnomalyAny框架实现单样本生成逼真异常数据,破解视觉检测瓶颈!
本文介绍了一种名为AnomalyAny的创新框架,该方法利用Stable Diffusion的强大生成能力,仅需单个正常样本和文本描述,即可生成逼真且多样化的异常样本,有效解决了视觉异常检测中异常样本稀缺的难题,为工业质检、医疗影像…...
Leetcode33( 搜索旋转排序数组)
题目表述 整数数组 nums 按升序排列,数组中的值 互不相同 。 在传递给函数之前,nums 在预先未知的某个下标 k(0 < k < nums.length)上进行了 旋转,使数组变为 [nums[k], nums[k1], …, nums[n-1], nums[0], nu…...
