【看表情包学Linux】软件包管理器 yum | Vim 编辑器介绍 | Vim 文本批量化操作 | 配置 Vim(二)

简介: 本章首先介绍 Linux 软件包管理器 yum,学习如何在 Linux 上安装和卸载软件。最后我们讲解一下 vim 编辑器,我采会用实际操作去讲解 vim 的文本操作。对于 vim 的这些操作按键,不需要死记,用的多了自然就会熟。默认的 vim 配置简陋不堪,没有代码提示、没有缩进甚至没有行号,但至少还是有语法高亮的。在这一章我们主要去学习 vim 的基础操作,对于 vim 的配置我打算放到下一章去讲。

Ⅲ. Vim 文本批量化操作


0x00 复制和粘贴(yy & p)

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

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


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


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


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

09369b35161ccb0c080d5cbe812bb311_07921a4dbe64477f8d1e9b4f7c315d8c.png


在光标所在行 yy 进行复制,随后你可以把光标移到你想粘贴的位置按 p 进行粘贴,


直接按 p 默认在 yy 复制行的下一行粘贴。你按几次 p 就会粘贴几次。


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

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

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


❓ 思考:如果我想粘贴 100 次,我难道要按100次 p 吗?


王曰 —— dark♂不必 !当然不用,我们可以使用 批量化粘贴 的功能:


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

68ec5bb9e7904ddbcd370a9ae2d4fc86_bbde5792198a4fb1b82688928db9161b.png


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

b056ae746528a4ae7c6e94424686fa4b_913a3db5271e4c9a83bb50541420aee8.png

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


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

f3c38ff350938d87727ba126dcb04ef6_1a2bd142f22143b4a814bf28d22f0743.png


0x02 剪贴操作(dd & p)

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

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


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

43b25d857aa0152265ad3c9a22ce8799_36a17fff553344a19b5a9c80b092f2df.png



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


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

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

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

我删着删着后悔了怎么办?也就是我们经常喜欢用的 Ctrl + Z 撤销!vim 下是什么呢?


💭 操作演示:按 u 撤销

c14e9067e01b554a62c5d19143610ac0_90433aa2f7ad4fd9b9241bab426b99f9.png



诶,这个时候我又后悔了,我想收回刚才的 u 撤销,怎么办? Ctrl + R!

68b7ba0097c420c1e2d5b289dfefcaaa_6c610162b6a4456a8d5100412bedfecf.png


当然,你再 Ctrl + R 就没用了,会显示  Already at newest change

226467f58d8853d4bd8eb2bd06e10b4c_03da348c7cb6464cb58f91d8afaacf6c.png



你需要回到刚才的撤销操作,你可以再 u 回去,此时才能 Ctrl + R,


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


0x04 光标跳转(gg & shift+gg & n+shift+gg)

指令 操作

shift + g

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

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


我想要我的文本扩增到十万行,我们先产出十万行的 "哈哈哈哈哈哈" :

23e80e0405786dc8f1a3b656dd4fec6c_c5431a6be2f748d5965bd21ccd3a9b59.png


在 Windows 下你会怎么做?不断地 CV……不断地 CV?


而在 Linux 中你只需要 yy100000,再 p 一下即可瞬间完成:

1fb56715b840edeb0666394fcd259abf_33d7c5c67f67467685fdba8f5fed650d.png



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


💭 操作演示:


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

4b8c0cdf4928cdfb112a9c2e41182752_ed095b6c9a48460588f7502be9a8376a.png



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

d5ffd6a5ec05c01c46a0d613e566deea_f67cd55651524a64a0c1dc05d2f7bf2c.png



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

8cbefe65614d530892c442e7a8a3c75b_3e88caa4c22a4bdd9d7b60db163d436a.png



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


也就是我们在 Windows 下经常使用的 End 键:

5cd955ef7a1ba9fb82627d70de79ad3b_4676b99eac724e1cb0e47de173065de3.png


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

💭 操作演示:单行光标移动操作

1e5fd35055f0b60f9ce74d2da92daac4_578910cfb75749c5a217df8822239bc7.png



0x05 方向键(HJKL)

玩到这里相信你也发现了,我们是可以通过键盘上的方向键去进行光标移动的。


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


指令 操作
h
j
k
l

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


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


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

1f1f3d24d7a5854a61dc69f79cb0477a_d2b20448af784e9687f0740f11aa94e6.png


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


这样的上下左右移动方式好奇怪啊,不是所见即所得的 ↑ ↓ ← → ,但我们可以这么记:

23d938950b2cdc5be72077e05591d50b_7552d704d53446baa18a8c046b13f2ea.png

(可以说是非常形象了)


0x06 一些修改和替换操作(shift~ & r & nr)

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

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

7a859d3c07f7415ffb59f228737f8f09_938e0d42e24a41148fd0c3a1d66c80ed.png



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


💭 操作演示:shift + ~

016ac42fa314cf34db72d327e3f09c3b_ca0a109fff134af09a54662d701478b0.png



现在我们又想让 KavaScript 改成 JavaScript,我不想删掉 K 之后敲上 J,我想直接覆盖修改:

1a9d19fe1c387d8a3729a759de1eb510_b03c6e02682a410687575e514e5f1238.png



先输入一个 r,然后再输入你要替换的字符(这里是J),此时就可以做到修改。


💭 操作演示:r 修改

56b199d4e1d15d0e6551eb4719330935_e08e3adff7f6423a96b2e65e3dacdacb.png



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


比如我们想把 JavaScript 改成 XXXXXXript,J 光标处按 6rX 即可:

bb43c3d8ccf14eb76541ab24b8b8234a_05a7d4b80086430387975cf2c886b024.png



(我们这里没有提批量化替换,因为我们下面要介绍一种专门用来替换的模式:Replace)


0x07 replace 模式

输入 shift + r 进入 replace 模式:

53132166d374c292bded31a29464231a_b97ce1e92d2e42548c09b220d7a93309.png



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


这非常类似于 Windows 中恼人的 Insert 键,一些不知道的人总会莫名其妙按到,然后百度问。


💭 操作演示:replace 模式

3bbcdb36802965e5ccf8b6ecf8e7d318_7b8c4f99415545f29bd3c7ac7e783766.png



0x08 删除和批量化删除(x & nx)

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

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

e8e2df6c1260811d9355c1bcc32a2911_522dc50b242c4d55aed6270d3ef5f773.png



💭 操作演示:一次性删掉一个 Hello

783d2a0257aaac97aa55dc12ace6b546_2f0ab66cfec64ce3b4759bd4ef3ae87d.png



Ⅳ. 配置 Vim


0x00 引入:默认的 Vim 配置

大家有没有发现好像用起来很不方便?这未免也太简陋了吧:

e686bf316ea87991a8781ff2ad41dc34_c63bc4f2e72041c6aa8a99c2690e92f7.png



默认的 vim 没有配置,没有提示、没有缩进、没有行,这就太恶心了。


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


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


0x01 懒人一键配置

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


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

6e2ef87ea07bbb07ad2cd3de9ea64c62_1bab6a0ee6cb41ab99fc2b34b7198d3a.png


配置是需要用到 root 密码的,这里输入一下 root 密码。


此时就进入了安装阶段(当然,前提是你的 yum 都要搞好):


6faf68f39bee1cd82d24fa25c1b7dd84_079c78af77d14d79951db223f6bc3bcc.png


等待安装完成后,我们在打开 vim 看看,效果如何。瞬间就变得神清气爽了有木有~

07c03ae6d77b4b153f6d1ec710be7c14_7a80245f0b5f4021a033b3789a9efdeb.png

相关文章
|
4月前
|
Linux 开发工具 数据安全/隐私保护
linux异常一:feng 不在 sudoers 文件中,此事将被报告。yum提示Another app is currently holding the yum lock; waiting for
这篇文章介绍了在CentOS 7系统中安装Docker时遇到的两个常见问题及其解决方法:用户不在sudoers文件中导致权限不足,以及yum被锁定的问题。
62 2
linux异常一:feng 不在 sudoers 文件中,此事将被报告。yum提示Another app is currently holding the yum lock; waiting for
|
3月前
|
存储 缓存 Linux
【Linux】另一种基于rpm安装yum的方式
通过本文的方法,您可以在离线环境中使用RPM包安装YUM并进行必要的配置。这种方法适用于无法直接访问互联网的服务器或需要严格控制软件源的环境。通过配置本地YUM仓库,确保了软件包的安装和更新可以顺利进行。希望本文能够为您在特定环境中部署YUM提供实用的指导。
337 0
|
4月前
|
缓存 前端开发 Linux
Linux yum 命令
10月更文挑战第1天
76 2
|
5月前
|
关系型数据库 MySQL Linux
Linux 安装 mysql【使用yum源进行安装】
这篇文章介绍了在Linux系统中使用yum源安装MySQL数据库的步骤,包括配置yum源、安装MySQL服务、启动服务以及修改root用户的默认密码。
Linux 安装 mysql【使用yum源进行安装】
|
4月前
|
Unix Linux Go
Linux 使用Yum安装Go和配置环境
Linux 使用Yum安装Go和配置环境
|
7月前
|
网络协议 Linux 网络安全
入职必会-开发环境搭建39-Linux常用操作-Linux防火墙操作
在CentOS 7中,新引入了firewalld服务(防火墙),取代了CentOS 6之前的iptables服务(防火墙)。
入职必会-开发环境搭建39-Linux常用操作-Linux防火墙操作
|
6月前
|
搜索推荐 Linux 网络安全
Linux系统中的Vim编辑器
【8月更文挑战第21天】Vim是一款功能强大的文本编辑器,在Linux系统中广泛使用。它具有三种基本模式:命令模式,用于执行操作但不能编辑文本;插入模式,允许用户像常规编辑器那样输入文本;底线命令模式,用于保存、退出及查找替换等操作。Vim还支持多窗口编辑、宏录制及插件扩展等功能,并可通过配置文件个性化设置。因其高效性、良好的可移植性和远程编辑能力,Vim特别适用于开发者和系统管理员。
|
6月前
|
算法 Ubuntu Linux
在Linux中,对比apt和yum两种包管理器在不同Linux发行版中应用有何区别?
在Linux中,对比apt和yum两种包管理器在不同Linux发行版中应用有何区别?
|
7月前
|
存储 运维 Linux
Linux磁盘精准缩容:操作详解与技巧
在Linux系统管理中,有效的磁盘空间优化对于维护系统性能至关重要。本文将深入探讨如何在Linux环境下安全地进行磁盘缩容,帮助你合理调整存储资源,确保系统高效运行。跟随本篇的步骤,一起优化你的Linux系统磁盘空间!
Linux磁盘精准缩容:操作详解与技巧
|
6月前
|
缓存 安全 Linux
本地YUM源大揭秘:搭建您自己的Linux软件宝库,从此告别网络依赖!一文掌握服务器自给自足的终极技能!
【8月更文挑战第13天】在Linux中,YUM是一款强大的软件包管理工具,可自动处理依赖关系。为适应离线或特定安全需求,本指南教你搭建本地YUM源。首先创建存放软件包的`localrepo`目录,复制`.rpm`文件至其中。接着,安装并运用`createrepo`生成仓库元数据。随后配置新的`.repo`文件指向该目录,并禁用GPG检查。最后,清理并重建YUM缓存,即可启用本地YUM源进行软件搜索与安装,适用于网络受限环境。
327 3