前言:
在上期我们介绍了关于【Linux】的软件包管理器——yum的使用,今天给大家介绍的是【Linux】的一款编辑器,即【vim】的使用教程。接下来,跟随我的脚步,一起去看看吧!!
目录
(一)走进vim👋
1、vim的基本概念👇
vim 是一款常用的文本编辑器,特别适合在Linux和Unix操作系统下进行程序开发、系统管理等工作。使用 vim 可以高效地编辑各种类型的文件,例如代码文件、配置文件等。在Linux系统中,大部分配置文件都是ASCII的纯文本形式存放的,因此使用vim进行编辑是非常方便和实用的。
在正式介绍之前,我们需要谈谈关于【vim】的前身!!!
- a)即在它引入之前,我们通用的是一款名为 vi 的文本编辑器,vim 是再此基础上升级得到的产物,它是从 vi 发展而来,具有比 vi 更多的功能和更好的用户界面。
- b)vim 是 vi 的升级版本,它不仅兼容 vi 的所有指令,而且还有一些新的特性在里面。例如语法加亮,可视化操作不仅可以在终端运行,也可以运行于x window、 mac os、 windows。
- c)目前我们使用比较多的是 vim 编辑器。vim 具有程序编辑的能力,可以主动的以字体颜色辨别语法的正确性,方便程序设计。😍
- d)简单的来说, vi 是老式的字处理器,不过功能已经很齐全了,但是还是有可以进步的地方。 vim 则可以说是程序开发者的一项很好用的工具。连 vim 的官方网站
- (welcome home : vim online) 自己也说 vim 是一个程序开发工具而不是文字处理软件。
其次对于vim这款编辑器来说,它不同于其他编辑器的地方在于你可以仅使用键盘中的主键盘区来完成你想要实现的大多数操作。
- 当你进入vim后,默认便是命令模式,此时你手中的键盘便被赋予了额外的“魔力”,接下来我也将会对大多数的功能按键进行讲解。(以下附图大家先look一下)
vim 键盘图:
大家可以把它结合我们自己的键盘对比起来看看:
2、简述IDE和编辑器的区别✍️
接下来要给大家解释的一点的是,让大家清楚——IDE和编辑器这两者之间的区别!!!
首先,对于vim来说,大家一定要认识清楚它仅仅就是一款“编辑器”,这点大家一定要记住了!🔥
而像我们平时写【C/C++】代码的 vs 和此时我们要讲的 vim是不一样的。
- vs也叫做IDE(Integrated Development Environment)—— 是一个集成了代码编辑、编译、调试、版本控制等多个功能的软件框架。IDE通常会包含很多工具与插件来支持软件开发的各个方面,例如自动化构建、代码重构、代码分析、一键部署等。常见的IDE有Eclipse、Visual Studio、IntelliJ IDEA等。
- 相比之下,文本编辑器则主要用于编辑文本文件,例如代码文件、纯文本文件等。虽然文本编辑器也可以配合其他工具来完成一些任务,但它并不像IDE那样提供一个完整的开发平台。常见的文本编辑器有Vim、Sublime Text、Notepad++等。
综上所述,IDE和编辑器的主要区别在于,IDE更加强大,可以处理更多的任务和工作流程,而编辑器则更加注重对文本进行编辑和管理。
具体的大家还可以参考以下内容:
https://www.techrepublic.com/article/best-ide-software/
3、vim常见工作模式
vim是一款 多模式的编辑器,它有着各种各样的模式,总共高达 12 中模式,但是对于我们来说,我们只需要学习其中的最常见的 五种,足以应付开发时的绝大多数场景。接下来我将详细介绍这几种模式,包括每种模式的用法和差别,以及它们之间是如何进行切换的。
vim有多种工作模式,每个模式下按键的功能都不同。以下是vim常见的几种工作模式:
- 正常/普通/命令模式(Normal mode)
这是vim的默认模式,在该模式下可以移动光标、复制、粘贴文本等,但无法进行编辑。此模式下按i或a可切换到插入模式。
- 插入模式(Insert mode)
只有在Insert mode下,才可以做文字输入,按「ESC」键可回到命令行模式。该模式是我们后面用的最频繁 的编辑模式。
- 可视模式(Visual mode)
在该模式下可以选中一段文本并对其进行操作,例如复制、删除等。
- 末行模式(last line mode)
文件保存或退出,也可以进行文件替换,找字符串,列出行号等操作。 在命令模式下,shift+: 即可进入该模式。要查看你的所有模式:打开vim,底行模式直接输入
- 替换模式(Replace mode)
在正常模式按下R,可以进入可视模式。对于替换模式而言其实并没有那么常用,因为在命令模式中就可以直接进行替换,也就是按下【r】键,然后直接对当前光标所在字符进行替换即可。但是每次只可替换一次或者批量替换,在【替换模式】中可连续替换
👉以上是vim常见的几种工作模式,掌握这些模式可以提高vim的使用效率。
(二)vim的基本操作
有了上述的基本概念的认识,我们已经大概知道了 vim 是什么。接下来,我们就通过具体的操作来带大家直观的理解 vim !
1、安装 vim
在具体上手之前,我们总得下载好它吧。那么怎么查看自己是否已经下载好了 vim 呢?
- 其实很简单,我们只需在命名行输入——vim ,如果有以下界面,即表示已经安装好了。
- 那么此时很多下伙伴是不是就退不出来了呀在当前的页面,不要慌,当我们想退出当面页面也很简单,具体如下:
当我们输入没有弹出这个页面时,即表示当前的机器上并没有安装 vim ,此时我们需要对其进行操作(不知道各位小伙伴还知不知道安装的指令),具体指令如下:
sudo yum -y install vim //普通用户
yum -y install vim //超级用户
2、简单的实践一下✊
接下来,我们简单的展示一下使用的场景,让大家先见见!!!
- 如果你想要使用 vim 来建立一个名为 test.c 的文件时,你可以这样做:
vim test.c
- 或者我们先创建文件,紧接着我们在使用进行打开即可,即:
touch test.c //创建文件
vim test.c //打开文件
直接输入 vim 文件名 就能够进入 vim 的一般模式了。请注意,记得 vim 后面一定要加文件名,不管该文件存在与否!
此时,当我们想要此文件中进入时,即进入插入模式时,我们需要怎么做呢?
- 其实很简单,在当前的普通模式下,我们只需按一下【 i 】即可
-
在编辑模式当中,你可以发现在左下角状态栏中会出现 –INSERT- 的字样,那就是可以输入任意字符的提示
- 这个时候,键盘上除了 Esc 这个按键之外,其他的按键都可以视作为一般的输入按钮了,所以你可以进行任何的编辑。
此时,我们往里面简单的写入一段代码:
当写入完毕后那么我们该如何退出呢?(按下 ESC 按钮回到一般模式)
- 好了,假设我已经按照上面的样式给他编辑完毕了,那么应该要如何退出呢?是的!没错!就是给他按下 Esc 这个按钮即可!马上你就会发现画面左下角的 – INSERT – 不见了!
在一般模式中按下 :wq 储存后离开 vim
- OK,我们要存档了,存盘并离开的指令很简单,输入 :wq 即可保存离开!
- 接下来,我要验证一下刚才我在文件里面的操作是否成功,我们可以【cat】一下这个文件,看是否输出我们写入的内容:
注意事项:
- a)如果你在操作时不知道自己处于什么模式下,我们可以无脑的进行 【ESC】;
- b)退出的时候,一般都是先进行保存操作,紧接着在退出的!
3、模式切换
想要从命令模式切换为其他模式,就要按下对应的功能键,以下是vim中常见的几种模式
接下来我简单的演示一下:
- 视图模式:
- 替换模式:
- 底行模式:
(三)vim指令集
接下来我们将正式带大家进入几种模式下的指令学习!!
1、✨vim正常模式命令集 ✨
首当其冲的便是我们最常见的命令模式,用户刚刚启动 vim,便进入了命令模式。
- 此状态下敲击键盘动作会被Vim识别为命令,而非输入字符。比如上述我们讲到的想要进入插入模式,我们此时按下 i,并不会输入一个字符,i 被当作了一个命令。
⌨移动光标
- vim中有多种方式可以移动光标,其中最简单的便是键盘上的 ↑ ↓ ← → ,这几个键位是非常普遍的进行操作的办法!!!
-
除了上述的之外,还可以靠键盘上的 h、j、k、l:分别表示向左、下、上、右移动一个字符。这是vim中最基本的光标移动命令,也是其他移动命令的基础。
- 按「G」 :移动到文章的最后
- 按「 $ 」:移动到光标所在行的“行尾” 【
shift + 4
】 - 按「^」 :移动到光标所在行的“行首” 【
shift + 6
】 - 按「w」 :光标跳到下个字的开头
- 按「e」 :光标跳到下个字的字尾
- 按「b」 :光标回到上个字的开头
- 按「#l」 :光标移到该行的第#个位置,如:5l,56l
视频操作
- 按[gg] :进入到文本开始
- 按[shift+g] :进入文本末端
- 按「ctrl」+「b」:屏幕往“后”移动一页
- 按「ctrl」+「f」 :屏幕往“前”移动一页
- 按「ctrl」+「u」:屏幕往“后”移动半页
- 按「ctrl」+「d」:屏幕往“前”移动半页
视频操作
有了上述基本的操作过后,我相信大家对其的基本应用应该有了一定程度的掌握与了解,接下来,我们将继续其他功能。
⌨复制
- 「yw」 :将光标所在之处到字尾的字符复制到缓冲区中。
- 「#yw」:复制#个字到缓冲区
- 「yy」 :复制光标所在行到缓冲区。
- 「#yy」 :例如,「6yy」表示拷贝从光标所在的该行“往下数”6行文字。
- 「p」 :将缓冲区内的字符贴到光标所在位置。注意:所有与“y”有关的复制命令都必须与“p”配合才能完 成复制与粘贴功能。
哦!对了,我演示的顺序跟上面我给出的顺序是一样的!!
vim复制操作
特别注意:
- ➡ 所有有关“y”有关的复制命令都必须与“p”配合才能完成复制与粘贴功能⬅
⌨删除文字
- 「x」 :每按一次,删除光标所在位置的一个字符
- 「#x」 :例如,「6x」表示删除光标所在位置的“后面(包含自己在内)”6个字符
- 「X」 :大写的X,每按一次,删除光标所在位置的“前面”一个字符
- 「#X」 :例如,「20X」表示删除光标所在位置的“前面”20个字符
- 「dd」 :删除光标所在行
- 「#dd」:从光标所在行开始删除#行
vim 删除操作
⌨替换
- 「r」 :替换光标所在处的字符。
- 「R」:替换光标所到之处的字符,直到按下「ESC」键为止。
vim 替换操作
⌨撤销上一次操作
- 「u」 :如果您误执行一个命令,可以马上按下「u」,回到上一个操作。按多次“u”可以执行多次回 复。
- 「ctrl + r」: 撤销的恢复
vim 撤销上一步操作
⌨更改
- 「cw」 :更改光标所在处的字到字尾处
- 「c#w」:例如,「c3w」表示更改3个字
vim 更改操作
⌨跳至指定的行
- 「ctrl」+「g」:列出光标所在行的行号。
- 「#G」 :例如,「15G」,表示移动光标至文章的第15行行首。
vim 跳到指定的行
2、✨vim插入模式命令集 ✨
- 若想要编辑文本:启动Vim,进入了命令模式,按下 i ,切换到输入模式。
- 命令模式只有一些最基本的命令,因此仍要依靠底线命令模式输入更多命令。
⌨字符按键以及Shift组合,输入字符
- Shift+方向键上下移动一行:移动光标并选择文本
- Shift+Insert:粘贴剪切板中的内容
shift + i
进入可以使光标快速切换到当前行行首
shift + a
进入可以使光标快速切换到当前行行尾
shift + o
进入可以使光标快速切换到上一行行首
- ESC 退出输入模式,切换到命令模式
具体的这里就不展示了,大家可以在自己的机器上进行操作!!!
3、✨vim末行模式命令集 ✨
接下来,我们将进入第三种模式的学习,即 vim 末行模式的学习,跟着我继续往下看!!!
注意事项:
- 在使用末行模式之前,请记住先按「ESC」键确定您已经处于正常模式,再按「:」冒号即可进入末行模式。
⌨列出行号
- 「set nu」 : 输入「set nu」后,会在文件中的每一行前面列出行号。
- 「set nonu」:输入「set nonu」后,行号将会取消掉。
💨 有行号:
💨 无行号:
⌨跳到文件中的某一行
- 「#」 :「#」号表示一个数字,在冒号后输入一个数字,再按回车键就会跳到该行了,如输入数字15, 再回车,就会跳到文章的第15行。
vim 跳到文件的某一行
⌨查找字符
- 「/ 关键字」 : 先按「/」键,再输入您想寻找的字符,如果第一次找的关键字不是您想要的,可以一直按 「n」会往后寻找到您要的关键字为止。
- 「? 关键字」:先按「?」键,再输入您想寻找的字符,如果第一次找的关键字不是您想要的,可以一直 按「n」会往前寻找到您要的关键字为止。
💨 「/ 关键字」
- 向光标之下寻找一个名称为 word 的字符串。例如要在档案内搜寻 vbird 这个字符串,就输入 /vbird 即可! (常用)
vim 底行模式 查找
💨「? 关键字」
- 向光标之上寻找一个字符串名称为 word 的字符串。
vim ?查找
🔥问题:
- 通过上述观察,大家有没有发现/ 和 ?查找有和区别?如果没发现,大家可以自己实操一下看看过程是什么样的。
⌨替换字符
在vim中进行替换可以使用指令
: s
其基本语法为:
:[range]s/pattern/replacement/[flags]
g :
全局替换
vim 替换字符
在不加标志位时,默认替换当前行的首个匹配结果,可以指定 [range]
来替换一定范围内的内容。以下是一些示例:
:%s/pattern/replacement/g
:全文替换:s/pattern/replacement/g
:当前行全局替换:2s/pattern/replacement/g
:第2行全局替换:.+1,$s/pattern/replacement/g
:从当前行的下一行到文件末尾全局替换
⌨保存及退出vim
在vim中进行保存和退出操作,有以下几种方式:
- 保存并退出 :在命令模式下,输入
wq
或x
命令, 即可保存当前文件并退出vim。 - 不保存退出 :在命令模式下,输入
q!
命令,即可强制退出vim,放弃所有修改。 - 保存但不退出 :在命令模式下,输入
w
命令,即可保存当前文件,但不会退出vim。如果之后决定退出vim,可以继续输入:q
命令来退出。
💨展示如下:
- 此时,当我们输入【q】时,里面我追加的内容不会被保留,当我们退出vim时,打印相应的操作应该只有我之前保留的内容:
printf("hello i am lisi\n");
printf("hello i am wangwu\n");
printf("hello i am zhangsan\n");
- 当我们退出来之后,紧接着我再去打印一下文件的内容,看是否跟我说的一样:
- 紧接着我们在编译一下这个文件,看最终结果是否跟上述一样:
需要注意的是,在某些情况下,可能无法直接保存并退出,例如当前文件没有写权限等情况。此时可以使用
sudo
命令提升权限,以允许进行保存操作。
⌨分屏编写工程
Vim支持分屏功能,可以同时显示多个文件或同一个文件的不同区域。利用这一特点,可以实现在不同分屏中同时进行编写,提高编辑效率
- [vs 文件名] —— 创建文件
- [ctrl + ww] —— 切换光标到不同的界面
🔥接下来,我们具体讲解相应的过程:
- a)首先,在进入之前,我们创建了一个名为 【file.c】的文件,接下来我们用 vim 打开之后,我们往文件里面写几行代码。具体如下:
- b)当我们输入上述的指令,敲击回车之后,我们就会弹出以下界面,此时我们就实现了分配的操作:
- c) 当我们对程序进行完善之后,紧接着我们需要退出文件:
- d)退出头文件的文件夹之后,紧接着我们在退出主程序的文件夹:
- e)完成上述的一系列操作之后,接下来我们就需要去验证刚才我们的操作是否执行成功了。接下来我们对程序编译看看:
至此,以上便是分屏操作的详细过程了。
💨注意事项:
- 使用上述命令后会打开一个新的窗口,可以在新窗口中打开其他文件或切换到其他区域进行编辑。可以使用
Ctrl+ww
快捷键来在各个分屏之间进行切换。 - 在分屏的情况下,每个窗口的高度是相对的。(除了这种水平分配的方式,还有垂直分屏的,此处我们就不展示了)
4、✨vim视图模式命令集 ✨
进入可视模式:
- 使用
v
命令即可进入普通可视模式,使用V
命令可以进入行可视模式; - 使用
Ctrl+v
命令可以进入块可视模式。
接下来带大家演示一个比较复杂的功能,即——多行注释
- a)首先,使用 vim 打开文件后,按下】【ctrl + v】,即可进入块视图模式:
- b)紧接着进入之后,不要乱按,我们可以按住 功能键 或者 方向键 来选择你想要注释的行
- c)接下来,我们按下【shift + i】,进入插入模式,紧接着输入注释符【 // 】或者【#】都可。输入完之后,按下【ESC】键即完成了注释操作
- d)当我们注释完毕后,想要解除注释时。一样的,我们的先进入视图模式
- e)紧接着还是一样的选择我们需要注释的行
- f)选中需要取消注释的行之后,紧接着我们按两下【ll】,我们会看到它向右选择刚开始输入的注释符号
- g)最后,我们可以发现成功的取消了注释
至此,全是关于注释的添加和删除的具体过程了!!!还有些指令在这里就不给大家演示了!
5、✨vim替换模式命令集 ✨
vim提供了一个简单的替换命令:r命令
- r命令:用于替换光标所在的字符,做法是先将光标移动到需要替换的字符处,按一下r键,然后输入新的字符。
- 注意,全程无需进入插入模式,也不会进入插入模式。
如果先输入 [数字] 再输入r,最后输入新的字符,说明从当前光标的位置开始,替换【数字】个新字符。
vim替换模式
💨替换模式
R命令让你一步到位进入替换模式:对于需要替换多个字符,更好的方案是直接进入替换模式。按下大写的R键,屏幕左下角出现--REPLACE--字样,说明你已经处于替换模式。此时输入字符可以连续替换光标及其后边的内容。
注意:
- 退格键(Backspace):在替换模式中被解释为如果左边的内容被替换过,则恢复到原来的样子;如果没有被替换过,则简单的向左移动。
- 修改完毕后,按下Esc键回到普通模式。
(四)简单vim配置
1、自定义配置
配置文件的位置
- 在目录 /etc/ 下面,有个名为vimrc的文件,这是系统中公共的vim配置文件,对所有用户都有效。
- 而在每个用户的主目录下,都可以自己建立私有的配置文件,命名为:“.vimrc”。例如,/root目录下, 通常已经存在一个.vimrc文件,如果不存在,则创建之。
- 切换用户成为自己执行 su ,进入自己的主工作目录,执行 cd ~
- 打开自己目录下的.vimrc文件,执行 vim .vimrc
- 当我们进入后,如果没有配过的话应该是空空如也的!!
在此,由于自定义去配置非常繁琐,所以在此就不展示,感兴趣的小伙伴可以去网上搜具体教程来自己实现一个自己理想化的 vim 编辑环境。
2、自动化配置☀️
为了简化这一步骤,有大佬就帮我们做了这样的一件事,我们直接用就可以了,以下两个使我感觉还不错的,大家可以借鉴一番:
💨 我们这里以 gitee 上的说明,其实上面有相应的教程,大家点击进去之后只需找到下载链接,复制即可:
注意事项:
在安装之前要确定自己的机器上是否安装了 gitee ,如果没有安装的话是会显示报错的,我们需要先安装gitee。(安装方法大家应该都知道吧!在此就不演示了,如果不知道的话可以在评论区留言)
- 💨此时,下载需要我们【root】的密码,输入密码之后就不用管了,等待安装完成即可!!
- 💨此时,即表示安装成功(此时我们需要重启一下机器或者按照它的提示输入):
- 💨此时,当我们用 vim 打开创建的文件时,我们可以看到配置信息:
(五)总结
到此,关于 vim 编辑器的所有知识便结束了!接下来,稍作回顾,本期就结束了。
- a)首先从概念出发,给大家介绍了 vim 相关的基本知识,让大家在脑海中对其有了认识,并通过区分 IDE 和 vim 来加深读者的认识;
- b)紧接着我们通过 vim 的基本操作,让大家对其有个印象,宏观上了解我们要讲解的知识;
- c)接下来,我们通过几种模式下的具体操作带大家深入了解 vim ;
- d)最后,简单的给大家讲解了一下配置 vim 的方法。
以上便是本期的全部知识,如果对您有帮助的话,麻烦点赞三连哟!