写点什么

一文教会你快速上手 Vim

作者:昆吾kw
  • 2022 年 8 月 10 日
    天津
  • 本文字数:2233 字

    阅读完需:约 7 分钟

一文教会你快速上手 Vim

Vi 和 Vim

Vi 是 Linux 操作系统默认的文本编辑器。


Vim 是 Vi 的加强版。不仅可以做简单的文字编辑,它也有颜色高亮,语法提示等特性,可以用作编程。


现在大部分的 Linux 发行版都同时包含 Vi 和 Vim。


在 Linux 操作系统中,Vim 是必须掌握的一个工具:


  1. 作为命令行模式下的文本编辑器非常好用

  2. 大部分 Linux 软件都支持 Vim 的接口,使用 Vim 编辑配置时会有良好的高亮提示

  3. 用熟练以后可以完全脱离鼠标操作,做到键字如飞


Vim 要做到熟练使用不是一件容易的事。


对于一般用户来说要求不用那么高,能完成简单文字的编辑需求就行。就好像小学上微机课,会打开 Word,能打字,保存,退出,就够用了。


我的要求也不高,只要能用它来编辑一些配置文件,写一些简单的 shell 脚本就行了。


我们以案例带学。先来看第一个案例。

练习 1:打开编辑器,输入一首古诗,并保存

在终端中,输入 vim 命令,就会打开编辑器,出现如下界面,就说明进入编辑器了:



打开编辑器后,就能打字了吗?


No,先来了解一个概念,弄清楚这个概念后,才能真正上手 Vim 进行编辑工作。


这个概念就是 Vim 的模式

Vim 的三种模式

什么是模式嘞?人家别的编辑器不是打开就能写东西了吗?


Vim 就是这么与众不同。


Vim 提供了三种模式,相互配合才能完成文件的编辑工作:


  • 命令模式(Command Mode):当在终端中执行 vim,或者使用 vim 命令打开一个文件时,进入该模式

  • 编辑模式 / 插入模式(Insert Mode):在 命令模式下,按下I/iO/oA/aR/r 任意一个,进入该模式

  • 命令行模式(Command-line Mode):在命令模式下,按下 :?/ 进入该模式


注意区分命令模式命令行模式,一字之差,作用不同。


这三个模式,命令模式下按相应的键位可以进入编辑模式和命令行模式;编辑模式和命令行模式按 ESC 可以回到命令模式;但是编辑模式和命令行模式不能相互进入。


用一张图表示就是:



我们来做一个简单的演示,方便理解这几种模式究竟是做什么用的。

命令模式

在终端中执行 vim 命令,打开 Vim:


$ vim
复制代码


此时就处于命令模式,光标位于空文件的起始位置:



命令模式可以看作是进入其他模式的中转站

编辑模式

注意此时的输入法,必须是英文输入法。按下键盘上的 i,左下角出现 -- Insert -- ,进入编辑模式:



此时就可以通过上下左右箭头来移动光标,并输入文字了。


记住第一个要点:要想使用 Vim 输入内容,必须左下角出现 -- Insert -- 才可以。


输入一首古诗吧:



在输入的过程中会发现,虽然光标一直动,但是屏幕最底下一行的位置并没有改变。一定要注意,最下面的一行并不属于文本内容,而是状态栏,显示编辑器的一些状态信息,比如当前处于何种模式,光标的位置,文件名等等。


当完成文本内容的输入,想要保存文件并退出。


还记得上面说的吗,命令模式是中转站,可以进入其他模式;编辑模式和命令行模式不能相互进入。


所以,此时就要先按 ESC 回退到 命令模式,再按 :,也就是 shift + ; ,右下角会出现一个:,进入命令行模式:


命令行模式

保存文件的命令是 wwrite 的缩写,意思是将文本写入硬盘进行保存。千万不要记成是 s (save) 了。


退出编辑器的命令是 qquit 的缩写。


在命令行模式下,输入 wq,就能退出并保存了:



此时会给出一个提示:



意思是当前编辑的文本没有文件名。因为刚才我们直接打开的编辑器,而不是打开的一个文件,所以在退出时就提示了指定一个文件名进行保存。


此时,再此按 ,进入命令行模式,输入 wq 并指定一个文件名:



回车之后,Vim 就能保存为文件,并退出了。


查看刚刚创建的文件,cat 命令用于查看文件的内容:


小结

到这里,我们基本上掌握了 Vim 编辑器的简单使用,主要是熟悉它的使用流程,先进入的是命令模式,要打字就进入编辑模式,要保存就先退回到命令模式,再进入命令行模式保存和退出。


虽然文字看上去,话说上去,啰七八嗦的,但是流程实际走下来,会发现其实并不复杂。

练习 2:打开 1.txt,给古诗添加题目,然后删除掉多余的拼音

在命令行中,执行 vim <文件名> 就可以打开该文件:


$ vim 1.txt
复制代码


默认进入命令模式,可以看到状态栏提供的一些信息:当前文件名是 1.txt,共有 4 行内容,86 个字符,光标位于第二行第一列,当前页面中显示了全部的内容:



添加标题,需要进入编辑模式,按 i进入,然后输入题目即可:



删除括号内注音,需要先将光标移动到合适位置,然后按 Backspace 进行删除:



如果在删除时不小心,多删了一些文本,就需要用到撤销的功能了。



此时要回到命令模式,按 u ,就能撤销刚才的操作了。


在命令模式下,移动光标有两种方式,一是按 HJKL,二是按上下左右箭头。一般更推荐前者,因为可以保持右手始终在键盘的输入区,稍微提高一些输入效率。但是编辑模式下,只能使用箭头键移动光标。


在命令模式下,要删除内容,就不能使用 Backspace 了,要使用 Delete 键。


所以要删除刚才的括号,除了在编辑模式下,我们还可以退回到命令模式,使用 HJKL 移动光标,使用 Delete 来删除。


然后保存文件,按 : 进入命令行模式,输入 wq 再回车:



现在查看下修改后文件的内容:


小结

这个练习,除了复习了各个模式的切换之外,也介绍了在命令模式下一些常用的命令,比如 u 是撤销,delete 删除。

总结

本文介绍了在 Linux 操作系统下 Vim 编辑器的简单使用,介绍了它的三种工作模式,各个模式的作用和用法。


然后通过两个简单的案例,基本上掌握了编辑一个文件的基本操作流程。Vim 还有很多常用的命令,比如从命令模式进入编辑模式,有 8 种不同的进法,现在只介绍了最常用的 i。比如如何复制粘贴文本,如何查找关键字等等,我们会在后面的文章中介绍。

发布于: 刚刚阅读数: 4
用户头像

昆吾kw

关注

还未添加个人签名 2020.10.21 加入

还未添加个人简介

评论

发布
暂无评论
一文教会你快速上手 Vim_vim_昆吾kw_InfoQ写作社区