(5)软件包管理器 yum | Vim 编辑器 | Vim 文本批量化操作 | 配置 Vim

Ⅰ . Linux 软件包管理器 yum

01 安装软件

在 Linux 下安装软件并不像 Windows 下那么方便,最通常的方式是去下载程序的源代码并进行编

译,从而得到可执行程序。

正是因为太麻烦,所以有些人就把一些常用的软件提前编译好并做成软件包,放到服务器上。

你只需要通过包管理器,就可以轻而易举地获取到这个编译好的软件包,直接无脑安装。

02 安装软件的方式

Centos 中安装软件分为三种方式:① 源码安装rpm 包安装yum 安装

源码安装:

源码安装就相当于我把项目源代码交给用户,让用户自己编译

rpm 包安装:

可以理解为 Linux 下的安装包,但下载好 rpm 包后想安装还需要用到 rpm 命令,比较麻烦,而且 rpm 包安装不会帮你解决依赖关系

yum 安装:

我们刚才讲的安装方式都不简单,如果只有源码和 rpm 包这两种安装方式,就连开发者用起来都头大,那更别说用户了。

于是 Linux 就推出了一个简单的集成化安装方案 —— yum 安装。

yum 安装最大的好处显而易见,不用编译源码,且不用解决软件的依赖关系。

03 试着安装一款软件

有一个叫 sl 的小工具,这个工具是可以在命令行跑 "火车头" 的软件。

在大家的系统中默认情况下是没有这个软件的,现在正好可以来试试用 yum 安装:

# yum install sl

此时我们输入 sl 看看效果如何:

由此可见,用 yum 安装软件非常de简单,下面我们来仔细讲解一下 yum 。

04 yum 指令

我们要安装别人的软件,需要做的准备工作:

① 需要别人先把代码给我编译成可执行程序。

② 需要有人将编好的软件,放在用户能下载的地方

在 Linux 也是一样的!以手机应用市场为例:

你手机上的 APP 是属于客户端还是服务器?

手机上的 APP 实际上是客户端,而不是服务器。云服务器相信大家并不陌生,我们所用的 XShell 其实就是一个客户端,我们登陆的是远端的服务器。

总结:yum 就类似于手机上的应用市场。

既然要安装软件,我们得知道软件的名字是什么,如果我们不知道软件叫什么那么自然也没法装。

这就是为什么手机应用市场有应用推荐这个功能,按类别去给你推荐软件供你下载。

然而 Linux 下我们可以通过 yum list 指令去执行类似于手机应用市场的 "软件推荐" 功能:

yum list

05 卸载软件 yum remove

yum 既然能安装软件,自然也是能卸载软件的。

# yum remove [目标]

06 yum 源

yum 在下载时是怎么知道去哪里搜的呢?

因为 /etc/yum.repos.d 目录下存有配置文件:

不是所有人的 Linux 上面的 yum 源都是国内的链接。

如果你不是国内的,或者发现安装软件特别慢,建议大家更新一下 yum 源。

07 文件上载工具:lrzsz

Irzsz:一款可以轻松地将 Window 的文件上载到 Linux 的神器。

如果你想把 Windows 下的东西传到 Linux 下,有了这个工具就可以直接拖拽

Ⅱ . Vim 编辑器

01 什么是 Vim

它是一个编辑器!只能用来写代码,编译 vim 也做不到,有其他工具帮我们做。

既然只能用来写代码,那我们为什么不用 nano 记事本呢,不都一样吗?

当然不一样,Vim 功能强大,是一个多模式的编辑器。因为过于强大,学习成本固然较高。

你可以输入 vim  确认一下你有没有安装过 vim,若显示  bash: vim: command not found ,

那就说明还没有安装 vim,我们用刚刚学习的 yum 安装一下即可

02 vim 的使用

我们先创建一个 code.c 源文件:

$ touch code.c

随后输入 vim 跟上文件名,就可以用 vim 编辑器打开该文件了:

$ vim code.c

03 默认模式、底行模式和插入模式

进入之后,此时你会发现是输入不了任何东西的:

因为第一次打开 vim 时的命令模式为 "默认模式"

如果我们现在什么都没干,想退出 vim,我们可以按下 shift + 冒号 ,此时:

此时该模式我们称之为 "底行模式",此时如果你想退出 vim,在该模式下按一个 q 即可。

由于此时什么都没有写,我们按 q 退出。如果写了东西并且想保存并退出,我们可以按 wq 

我们刚才进去 vim 之后时输入不了任何东西的,这是因为处于默认模式。

当我们按下 i 键(进入了 "插入模式" )后左下角会显示 :

此时我们就可以正常打字了:

如果想退出,我们要输入键盘上的 Esc 按键 ,此时再按冒号就可以回到底行模式:

当然,如果你想从底行模式再回到命令模式,也是使用 Esc 就可以回去。

退出去之后我们来 cat 一下看看我们刚刚写的内容:

总结:任何模式想回到命令模式,无脑 Esc 即可。

Ⅲ . Vim 文本批量化操作

01 复制和粘贴(yy & p)

指令操作
yy复制光标指定的当前行内容
p

粘贴 yy 复制的内容,默认粘贴到当前行后面(可光标指定)

在文本操作的时候我们可能会需要对文本进行批量化操作,比如删除、复制粘贴等功能,

这些在插入模式下是比较难做到的,我们一般会在命令模式下进行文本批量化操作。

操作演示:文本的复制和粘贴,如果我们想复制下面的 printf 代码,我们可以:

在光标所在行 yy 进行复制,随后你可以把光标移到你想粘贴的位置按 p 进行粘贴,直接按 p 默认在 yy 复制行的下一行粘贴。你按几次 p 就会粘贴几次。

02 批量化复制和粘贴(nyy & np)

指令操作
[n] yy复制光标指定的当前行(包括当前行以内的)n 行内容
[n] p

粘贴 n 份 yy 复制的内容,默认粘贴到当前行后面(可光标指定)

如果我想粘贴 50 次,我难道要按 50次 p 吗?

当然不用,我们可以使用 批量化粘贴 的功能:

操作演示:此时输入如果想粘贴 50 份,我们可以输入 50p :

对应的,还有 批量化复制 的功能,如果我们想让这两行复制:

我们可以光标选中第一个 printf 并输入 2yy,此时就复制了包括它本身以内的 2 行内容。

此时我们在 p 一下,我们就可以把这两行粘贴出来了:

03 剪贴操作(dd & p)

指令操作
dd剪贴光标指定行内容
[n] dd

剪贴光标指定行(包括当前行)的 n 行内容

 操作演示:将 printf 剪贴到 return 0 后面

dd 也可以当删除去使用,只要不 p 就等于是删除的效果了。

04 撤销操作和收回撤销(u & Ctrl + R)

指令操作
u撤销刚刚的操作
Ctrl + R

对撤销进行撤销(收回 u 撤销操作)

操作演示:按 u 撤销

我想收回刚才的 u 撤销,怎么办? Ctrl + R!

对于你的最近两次的误操作,你可以使用 u 和 Ctrl + R 在两个操作之间来回跳转。

05 光标跳转(gg & Shift + gg & n + Shift + gg)

指令操作

shift + g

光标快速定位到文本末尾
gg光标快速定位到文本的最开始
[n] shift + g将光标快速定位到文本的任意 (n) 行

为了方便我们讲解,我们先创建一个大文本的场景。

当文本一旦大了,我想让光标快速定位到文本的最尾部,该如何操作?

操作演示:

① shift + g 跳转至文本最后一行

②  gg 跳转至文本第一行首位置

③ 如果我想定位到第 123 行呢?123 + shift + g 即可!

如果想让光标跳到当前所在的文本行开头呢?

指令操作
shift + $光标快速定位到文本行的末尾(我们称 $ 为 "锚点" )
shift + ^光标快速定位到文本行的开始
w / b以单词为单位移动(warp 与 back)

 操作演示:

06 方向键(HJKL)

我们是可以通过键盘上的方向键去进行光标移动的。

但是我们是不太推荐用上下左右键去进行光标移动的,我们建议用 "HJKL" 

指令操作
h
j
k
l

为什么建议使用 HJKL 而不使用我们一直习惯的 ↑ ↓ ← → 呢?

 因为我们会学一些组合命令,比如批量化注释,它只能支持用 HJKL。

至于为什么 vim 它的上下左右是这几个按键呢?

老式键盘是没有上下左右键的,以前就是那 HJKL 充当 上下左右键的

07 一些修改和替换操作(Shift ~ & r & nr)

指令操作
shift + ~大小写快速切换
r替换光标所在位置的字符
[n] r替换光标所在位置开始的 n 个字符

我们现在想让这些字母大小写互换:

按住 shift 不动 + 波浪号 ~  即可将光标位置字符进行大小写的转换。

在想要替换的光标处,先输入一个 r,然后再输入你要替换的字符,此时就可以做到修改。

我们甚至还可以批量化修改,在 r 前加上数字。

08 replace 模式

输入 shift + r 进入 replace 模式:

进入 replace 模式后,光标所在处直接输入即可替换,你的所有输入的都会直接替换。

09 删除和批量化删除(x & nx)

指令操作
x删除当前光标位置字符
[n] x删除当前光标位置开始的后n个字符

如果我们要删除,我们可以按 X,如果要批量删除可以输入 nX(底行模式下)

Ⅳ . 配置 Vim

01 默认的 Vim 配置

大家有没有发现好像用起来很不方便

默认的 vim 没有配置,没有提示、没有缩进、没有行

我们先这里提供一个能够直接输入指令一键配置的方法,让大家先能用起来,

至于具体的 vim 配置学习我们会放到后面去讲解。

02 一键配置

直接复制下面的文字,shift+insert 粘贴到命令行:

curl -sLf https://gitee.com/HGtz2222/VimForCpp/raw/master/install.sh -o ./install.sh &&bash ./install.sh

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/web/93815.shtml
繁体地址,请注明出处:http://hk.pswp.cn/web/93815.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

VGG改进(3):基于Cross Attention的VGG16增强方案

第一部分:交叉注意力机制解析1.1 注意力机制基础注意力机制的核心思想是模拟人类的选择性注意力——在处理信息时,对重要部分分配更多"注意力"。在神经网络中,这意味着模型可以学习动态地加权输入的不同部分。传统的自注意力(Self-…

代理ip平台哪家好?专业代理IP服务商测评排行推荐

随着互联网的深度发展,通过网络来获取全球化的信息资源,已成为企业与机构在竞争中保持优势的一大举措。但想要获取其他地区的信息,可能需要我们通过代理IP来实现。代理IP平台哪家好?下文就让我们从IP池资源与技术优势等细节&#…

PWA》》以京东为例安装到PC端

如果访问 浏览器右侧出现 安装 或 点击这个 也可以完成安装桌面 会出现 如下图标

Linux系统:C语言进程间通信信号(Signal)

1. 引言:从"中断"到"信号"想象一下,你正在书房专心致志地写代码,这时厨房的水烧开了,鸣笛声大作。你会怎么做?你会暂停(Interrupt) 手头的工作,跑去厨房关掉烧水…

LoRa 网关组网方案(二)

LoRa 网关组网方案 现有需求:网关每6秒接收不同节点的数据,使用SX1262芯片。 以下是完整的组网方案:1. 网络架构设计 采用星型拓扑: 网关:作为中心节点,持续监听多个信道节点:分布在网关周围&am…

服装外贸系统软件怎么用才高效防风险?

服装外贸系统软件概述 服装外贸系统软件,如“艾格文ERP”,是现代外贸企业不可或缺的管理工具。它整合了订单处理、库存管理、客户资源保护、财务控制等多功能模块,旨在全面提升业务运营效率。通过系统化的管理方式,艾格文ERP能够从…

【沉浸式解决问题】peewee.ImproperlyConfigured: MySQL driver not installed!

目录一、问题描述二、原因分析三、解决方案✅ 推荐:安装 pymysql(纯 Python,跨平台,安装简单)✅ 可选:安装 mysqlclient(更快,但需要本地编译环境)✅ 总结四、mysql-conn…

C++进阶-----C++11

作者前言 🎂 ✨✨✨✨✨✨🍧🍧🍧🍧🍧🍧🍧🎂 ​🎂 作者介绍: 🎂🎂 🎂 🎉🎉&#x1f389…

(论文速读)航空轴承剩余寿命预测:多生成器GAN与CBAM融合的创新方法

论文题目:Remaining Useful Life Prediction Approach for Aviation Bearings Based on Multigenerator Generative Adversarial Network and CBAM(基于多发生器生成对抗网络和CBAM的航空轴承剩余使用寿命预测方法)期刊:IEEE TRAN…

3ds Max 流体模拟终极指南:从创建到渲染,打造真实液体效果

流体模拟是提升 3D 场景真实感的重要技术之一。无论是模拟飞瀑流泉、杯中溢出的饮料,还是黏稠的蜂蜜或熔岩,熟练掌握流体动力学无疑能为你的作品增色不少。本文将以 3ds Max 为例,系统讲解流体模拟的创建流程与渲染方法,帮助你实现…

《算法导论》第 35 章-近似算法

大家好!今天我们深入拆解《算法导论》第 35 章 ——近似算法。对于 NP 难问题(如旅行商、集合覆盖),精确算法在大规模数据下往往 “力不从心”,而近似算法能在多项式时间内给出 “足够好” 的解(有严格的近…

系统架构设计师-操作系统-避免死锁最小资源数原理模拟题

写在前面:银行家算法的核心目标是确保系统始终处于“安全状态”。一、5个进程各需2个资源,至少多少资源避免死锁? 解题思路 根据死锁避免的资源分配公式,不发生死锁的最少资源数为: 最少资源数k(n−1)1 \text{最少资源…

Preprocessing Model in MPC 2 - 背景、基础原语和Beaver三元组

参考论文:SoK: Multiparty Computation in the Preprocessing Model MPC (Secure Multi-Party Computation) 博士生入门资料。抄袭必究。 本系列教程将逐字解读参考论文(以下简称MPCiPPM),在此过程中,将论文中涵盖的40篇参考文献进行梳理与讲…

ACCESS/SQL SERVER保存软件版本号为整数类型,转成字符串

在 Access 中,若已将版本号(如1.3.15)转换为整数形式(如10315,即1*10000 3*100 15),可以通过 SQL 的数学运算反向解析出原始版本号格式(主版本.次版本.修订号)。实现思…

编程语言学习

精通 Java、Scala、Python、Go、Rust、JavaScript ✅ 1. Java 面向对象编程(OOP)、异常处理、泛型JVM 原理、内存模型(JMM)、垃圾回收(GC)多线程与并发(java.util.concurrent)Java 8…

软件测试:如何利用Burp Suite进行高效WEB安全测试

Burp Suite 被广泛视为 Web 应用安全测试领域的行业标准工具集。要发挥其最大效能,远非简单启动扫描即可,而是依赖于测试者对其模块化功能的深入理解、有机组合及策略性运用。一次高效的测试流程,始于精细的环境配置与清晰的测试逻辑。测试初…

华为认证 HCIA/HCIP/HCIE 全面解析(2025 版)

说实话,想在IT行业站稳脚跟,没有过硬的技术和资历,光凭热情和一腔干劲根本不行。 而华为认证,作为业内公认的“技术护照”,已经成了许多人打开职场大门的关键。 你会发现,越来越多的企业在招聘时&#xff0…

ComfyUI-3D-Pack:3D创作的AI神器

一、应用介绍 单图转3D网格:输入一张角色图,能输出基本成型的3D Mesh,还自带UV展开和贴图输出,可直接导入到Blender等软件中使用。多视角图像生成:可以基于算法生成围绕3D模型的多视角图像,用于3D模型展示…

【java面试day15】mysql-聚簇索引

文章目录问题💬 Question 1💬 Question 2相关知识问题 💬 Question 1 Q:什么是聚簇索引,什么是非聚簇索引? A:聚簇索引主要是指数据与索引放到一块,B树的叶子节点保存了整行数据&a…

【typenum】 16 无符号整数标记

一、源码 这段代码是 Rust 中用于实现编译时无符号整数的核心部分。它定义了一个 Unsigned trait 并为两种类型实现了该 trait&#xff1a;UTerm&#xff08;表示零&#xff09;和 UInt<U, B>&#xff08;表示非零数字&#xff09;。 定义&#xff08;marker_traits.rs&a…