vim简介和精简使用手册

时间:2022-08-03 00:53:56

作为vi的升级版,vim不仅能显示语法高亮,还能进行一些程序和脚本的编写。无论是在mac机器的终端上进行文件编写和管理,还是在linux机器上进行系统管理,vim都是一个必要的得力工具。

阅读本文,读者可以查阅到一些最常用的vim命令,了解vim的缓存和恢复机制,以及实现对vim的脚本配置。

vim简介和精简使用手册


vim简介

在所有Linux发行版上面都会有一个文本编辑器,那就是vi。vimvi的高级版,在vi的基础上加入了很多额外的功能。vim会根据文件的拓展名或文件内的开头信息判断文件内容而自动调用语法判断样式,再显示对应的语法高亮,甚至一些Linux基本配置文件内的语法都能用vim进行检查。此外vim还支持多文件编辑、区块操作等。vim是开发者的一项得力工具


为什么要学习vim

Linux命令行模式下的文本编辑器有很多,那么为什么要抛弃简单易用的nano,转而学习较复杂的vim呢?

  1. vim的功能强大,这点在上文的介绍中已经提到
  2. 所有的UNIX-like系统都会内置vim编辑器
  3. 很多软件的编辑接口都会主动调用vim

较重要的是以上第3)点,因为很多linux软件(文件)都用vim作为程序编辑的接口,所以如果不具备vim的使用能力,很多操作就无法进行。


vim的基本使用

对vim有过基本了解之后,最重要的是对vim进行操作。

使用vim打开/创建文件

使用​​vim [filename]​​打开一个文件,如果该文件不存在,系统会自动创建该文件。

vim简介和精简使用手册

进入vim后,可以看到以下界面,各标识的意义已标注在图中:

vim简介和精简使用手册

下面介绍如何使用vim进行编辑。

vim的使用模式和常用命令

vim有三种基本的使用模式,分别是:

  1. 一般命令模式(command mode)。当使用vim打开一个文件时,首先进入这个模式。在该模式下,可以对光标进行移动,对文本进行删除、复制和粘贴等基本操作。
  2. 编辑模式(insert mode)。在command mode下,按下​​i/a/o​​其中之一进入编辑模式。在该模式下,界面左下方会出现​​INSERT​​或​​REPLACE​​字样,代表插入/替换模式,此时可以对文本进行编辑。
  3. 命令行模式(command-line mode)。在command mode下,按下​​:​​进入命令行模式。此时界面下方会等待命令输入。在此模式下,可以进行查找/替换字符的操作,以及读取、保存文件,退出vim的操作。

三种模式的相互切换关系如下:

vim简介和精简使用手册

下面介绍各个模式下的常用命令。

command mode

vim简介和精简使用手册

insert mode

在编辑模式下,对文本进行修改

command-line mode

vim简介和精简使用手册

可视区块(visual block)

上文提到到vim操作中,基本上都是以字符和行为单位的操作,当需要对文本块进行操作时,就显得捉襟见肘。vim中提供了对文本块进行操作的模式,即可视区块(visual bolck)。可以将可视区块视为一种操作模式,在该模式下,可以对文本进行整块选中和操作。下面是可视模式下的基本命令:

vim简介和精简使用手册

此外,在可视模式中进行文本选择时,也可使用一般命令模式下的命令,例如要选中当前行到指定行的文本,可以使用​​V + nG​​的组合命令。


多窗口与多文件编辑

当需要对同一个文件进行对照编辑,或者对不同文件同时进行编辑时,往往需要进行多窗口操作。在vim中,首先进入命令行模式,输入​​vs [filename]​打开/创建另一个文件并进行多窗口编辑,其中​​filename​​可有可无,当只输入vs时,出现的是同一个文件在两个窗口中

在多窗口模式下,使用​​[ctrl] + w + w​​命令在各个窗口中切换,各个窗口中的操作与上文的操作命令相同。


vim的缓存与恢复

vim具有恢复功能,当因为某些原因导致系统产生类似宕机的情况时,可以通过恢复机制来取回之前未保存的数据。vim通过缓存进行数据恢复

在使用vim对​​filename​​进行编辑时,vim会额外建立一个名为​​filename.swp​​的文件记录对​​filename​​的操作信息,该缓存文件在filename的同目录下,或者在用户的.loacl目录的下级目录swap目录下。

当vim未被正常关闭时,缓存无法借由正常流程关闭,所以缓存会继续保留下来。如果使用vim对未被正常关闭的文件进行编辑,则会报出错误并提供操作建议。

vim简介和精简使用手册

底栏中提供了五个操作:

  • [O]pen Read-Only:以只读方式打开改文件,只对文件进行查看而不进行编辑。
  • [E]dit anyway:以正常方式打开文件,不加载缓存内容。
  • [R]ecover:加载缓存内容,取回之前未保存的工作。但是保存并退出vim后仍需要手动删除对应的缓存文件
  • [Q]uit:退出vim,不进行任何操作。
  • [A]bort:退出vim,不进行任何操作,与quit类似。

当进行一系列操作并手动删除缓存文件后,可以正常对相应文件进行编辑。

vim简介和精简使用手册


vim插件与配置

vim会主动将曾经的操作进行记录,便于下次作业。记录历史操作的文件为​​~/.viminfo​​,如果你曾使用过vim,根目录下就会自动产生该文件。你在vim中做过的所有操作,都可以在这个文件查询得到。

每个linux发行版对vim的默认配置不尽相同,例如在查询关键字时是否进行反白、在回车时是否自动缩进和是否显示行号等。这些配置都是可以自行设置的,vim的环境配置参数有很多,可以在一般命令模式下输入​​set all​​命令查看当前的vim配置。

vim简介和精简使用手册

实际使用中,可以通过自行创建并编辑文件​​~/.vimrc​​来进行vim环境的设置。在根目录下创建​​.vimrc​​文件,将所需的设置写入,编辑完成后,下次使用vim时的默认环境配置就是你所设置的,从而避免每次使用vim时都需要重新进行环境设置。

vim简介和精简使用手册