【看表情包学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

相关文章
|
26天前
|
监控 前端开发 数据可视化
3D架构图软件 iCraft Editor 正式发布 @icraft/player-react 前端组件, 轻松嵌入3D架构图到您的项目,实现数字孪生
@icraft/player-react 是 iCraft Editor 推出的 React 组件库,旨在简化3D数字孪生场景的前端集成。它支持零配置快速接入、自定义插件、丰富的事件和方法、动画控制及实时数据接入,帮助开发者轻松实现3D场景与React项目的无缝融合。
98 8
3D架构图软件 iCraft Editor 正式发布 @icraft/player-react 前端组件, 轻松嵌入3D架构图到您的项目,实现数字孪生
|
5月前
|
开发工具
vi编辑器,现在vi\vim是文本文件进行编辑的最佳选择,Vim是vi的加强的版本,兼容vi的所有指令,vim编辑器有三种工作模式,一开始进入的是命令模式,命令模式i是插入的意思,两下y+p复制内容
vi编辑器,现在vi\vim是文本文件进行编辑的最佳选择,Vim是vi的加强的版本,兼容vi的所有指令,vim编辑器有三种工作模式,一开始进入的是命令模式,命令模式i是插入的意思,两下y+p复制内容
|
2月前
OpenEuler配置本地yum源
本文档介绍了如何在服务器和虚拟机上挂载光盘镜像并配置本地Yum仓库,包括创建挂载点、编辑repo文件、实现挂载持久化以及通过FTP共享本地仓库的方法。适用于需要频繁安装软件包或管理多台机器的场景。
446 0
OpenEuler配置本地yum源
|
2月前
|
安全 Linux iOS开发
ONLYOFFICE 桌面编辑器8.1---一个高效且强大的办公软件
ONLYOFFICE 桌面编辑器8.1---一个高效且强大的办公软件
62 2
|
2月前
|
Unix Linux Go
Linux 使用Yum安装Go和配置环境
Linux 使用Yum安装Go和配置环境
|
4月前
|
Linux 开发工具
成功解决:CentOS 7中如何配置修改Vim
这篇文章介绍了如何在CentOS 7系统中配置和修改Vim编辑器的设置。文章首先指导读者如何检查Vim是否已经安装,如果未安装完全,提供了安装Vim的命令。接着,文章详细说明了如何编辑`/etc/vimrc`文件来配置Vim,包括设置显示行号、显示当前模式、光标位置信息、自动缩进和语法高亮等。最后,文章通过对比展示了配置前后使用vi和vim打开相同文本的效果差异,强调了Vim配置后的优势。
成功解决:CentOS 7中如何配置修改Vim
|
4月前
|
Linux Android开发 开发者
【Linux】yum的认识与简单配置
【Linux】yum的认识与简单配置
|
6月前
|
开发工具
Vim 编辑器:高效文本编辑的瑞士军刀
**Vim 概览:** Vim 是一个功能丰富的文本编辑器,以其高度可定制性著称。文章介绍了 Vim 的高效使用技巧,包括快捷打开文件、命令行模式下的常用命令、查找与替换、删除和复制文本。还讨论了配置 `.vimrc` 文件以自定义设置,如改变 leader 键、设置缩进和高亮,并展示了安装插件如 vim-airline 和 vim-snazzy 的方法。通过这些技巧,用户能提升 Vim 使用效率。
73 5
|
5月前
|
应用服务中间件 nginx
Ngnix07---通过yum安装Ngnix下 whereis ngnix可以查看Ngnix相关的一些目录,使用./nginx -y可以查看Ngnix版本及相关配置信息,使用 more CHANGES
Ngnix07---通过yum安装Ngnix下 whereis ngnix可以查看Ngnix相关的一些目录,使用./nginx -y可以查看Ngnix版本及相关配置信息,使用 more CHANGES
|
5月前
|
网络协议 Linux 开发工具
配置Linux固定IP地址,为什么要固定IP,因为他是通DHCP服务获取的,DHCP服务每次重启都会重新获取一次ip,VMware编辑中有一个虚拟网络编辑器
配置Linux固定IP地址,为什么要固定IP,因为他是通DHCP服务获取的,DHCP服务每次重启都会重新获取一次ip,VMware编辑中有一个虚拟网络编辑器
下一篇
DataWorks