# vi 与 vim

在 LInux 的世界中,绝大部分的配置文件都是以 ASCII 的纯文本形态存在的,因此利用简单的文字编辑软件就可以修改配置了

在 linux 的文本模式下的编辑器有:emacs、pico、nano、joe、vim 等,那么为何就要学 vi 呢?

# 为何要学 vim

为什么需要学习 vi ?原因如下:

  • 所有 Unix Like 系统都会内置 vi 编辑器,其他的编辑器则不一定会存在
  • 很多各别软件的编辑接口都会主动调用 vi (例如未来会讲解的 crontab、visudo、edquota 等指令)
  • vim 具有程序编辑的能,可以主动的以字体颜色辨别语法的正确性,方便程序设计
  • 因为程序简单,编辑速度相当快

可以将 vim 视作是 vi 的进阶版,有语法高亮等功能。比如当使用 vim 编辑一个 shell script 脚本时,vim 会依据文件的扩展名或则是文件内的开头信息,判断该文件的内容而自动调用该程序的语法判断。甚至一些 Linux 基础配置文件内的语法,都能用 vim 来检查,例如第 7 章谈到的 /etc/fstab 文件内容

简单说,vi 是老式的文字处理器,vim 则是程序开发工具(https://www.vim.org/ 官网也是这样介绍的)而不是文字处理软件。因为 vm 里面加入了很多额外的功能,例如支持正规表示法的搜索架构、多文件编辑、区块复制等等。