Vim 是一个 Unix 文本编辑器,它包含在 Linux、BSD 和 macOS 中。它以快速和高效而闻名,部分原因是它是一个小型应用程序,可以在终端中运行(尽管它也有图形界面),但主要是因为它完全可以通过键盘控制,无需菜单或鼠标。例如,要将文本插入到文件中,您按 I 键并输入。要导航或发出命令(例如保存、退格键、Home 键、End 键等),您按键盘上的 Esc 键,然后按与您要执行的操作相对应的任何键或组合键。与现代计算机用户期望的文本编辑方式相比,这是一种非常不同的方式,但这是世界各地的 Unix 管理员编辑配置文件、变更日志、脚本等的方式。
Vim 通常也称为 Vi,因为当 Bill Joy 在 1970 年代后期编写它时,它是可视化编辑器的缩写。在 Vi 之前,很少有人想到计算机可以充当一种交互式打字机。文本文件是使用命令(如 ed)编辑的,这些命令会找到特定的行并插入或删除文本;实际上,所有文本都是使用类似于您最喜欢的 办公 应用程序的查找和替换菜单的原始版本来操作的(但没有办公应用程序)。Vi 是一股清新的空气,使用户能够进入一个屏幕会话,该会话向他们显示整个文件,并允许他们实时编辑它。
[下载我们的 Vim 速查表]
虽然很多人声称喜欢并使用 Vi,但很少有人每天使用 Vi 而不是 Vim。在日常对话中,Vi 和 Vim 可以互换使用,通常指的是 Vim(Vi Improved)。在某些 POSIX 系统上,vi 命令是指向 Vim 的指针(或者 Vim 只是被称为 Vi)。但是,某些系统仅附带 Vi,您必须单独安装 Vim。
要验证您是否安装了 Vim,请使用此命令
which vim
如果没有任何返回,则表示您没有安装 Vim。从 项目主页 安装 Vim。
此外,某些发行版提供了一些不同的 Vim 构建版本。通常,这意味着有一个模仿旧 Vi 的最小化构建版本,其中仅包含足够的 Vim 特性使其可用,以及一个提供真正现代 Vim 体验的增强构建版本。确定可用版本的最佳方法是在您的软件包管理器中搜索任何包含字符串“vim”的软件包,然后安装功能最多的软件包(例如 Fedora 上的 vim-enhanced)。
为什么要使用 Vim?
Vim 是所有 POSIX 系统上的默认备用编辑器。无论您是刚刚安装操作系统,还是启动到最小化环境以修复系统,还是无法访问任何其他编辑器,Vim 都肯定可用。虽然您可以在系统上替换其他 小型编辑器,例如 GNU Nano 或 Jove,但几乎可以肯定的是,Vim 会出现在世界上的每个其他系统上。
它在设计和功能方面的效率也不容忽视。Vim 的原生基于终端的界面不依赖于菜单或花哨的外围设备,甚至不依赖于像 Ctrl 或 Alt 这样的“额外”键。Vim(主要)使用任何键盘通用的键,无论语言、布局或设备如何(而那些不通用的键可以很容易地重新映射)。
移动设备上的 Vim
如果您在手机上运行终端,Vim 是编辑的绝佳选择,但有一个问题:您可能没有 Esc 键。虽然有可供下载的替代键盘,但它们通常以牺牲按键大小为代价来添加额外的按键。如果这不是您愿意做出的改变,那么您可以将 Vim 设置为将 Esc 映射到某些其他键序列。将此 imap 命令添加到您环境的 .vimrc 中(此示例使用两个逗号作为转义序列,但您可以使用您不希望通常快速连续输入的任何内容,例如 qq 或 yy)
imap ,, <Esc>
如何使用 Vim
Vim 并不直观,这是一个不争的事实,因此其开发人员创建了 vimtutor,这是一个简单、交互式的基本知识教程。虽然 Vim 充满了潜力,但您只需要了解一些控件就可以使用它。用 vimtutor 的第一课来解释,以下是基本要素
- 通过输入 vim 从终端启动 Vim,或通过启动 gvim 从桌面启动。
- 按 I 键进入插入文本模式。在插入模式下,您所能做的就是将文本输入到文档中。插入模式下没有命令。
- 按 Esc 键进入普通模式,用于命令。
- 在普通模式下,您可以使用 h(左)、j(下)、k(上)和 l(右)移动光标。记住 j 是向下可能会有帮助,可以通过视觉上将其等同于向下箭头。
- 要退出 Vim,如果您想保存您的工作,请键入 :wq,或者键入 :q! 以放弃未保存的更改。
除了这些基本知识之外,所有其他 Vim 命令可以说都是为了方便和效率。

当您第一次启动 Vim 时,您会创建一个临时且空的文本文件并打开它,就像您打开任何其他文本编辑器一样。但是,与其他文本编辑器不同,您一开始无法在文件中键入任何内容。那是因为您处于普通模式,该模式用于向 Vim 发出命令。它期望您的第一个操作将是打开文件或将空文件另存为具有合理名称的文件。如果您的目的是在不打开文件或保存当前文件的情况下进行键入,请按键盘上的 I 键进入插入模式。进入此模式后,您可以像您期望的那样输入文本。
使用 Vim 是插入模式和普通模式之间不断的切换,但是一旦您习惯了它,它就会变得非常流畅,以至于您不会去想它。这有点像按 Caps Lock 键(而不是 Shift 键)来获得一系列大写字母,或者像在移动键盘上按住以获得替代字符一样。我们不称这些动作为“模式”,但这就是它们的本质:它们是您打开或关闭的切换开关,用于更改某些操作的上下文。例如,当您想在 Vim 中向后移动一个单词时,您按下(然后释放)Esc 键进入普通模式,然后按 b 键将光标向左移动一个单词。它与其他文本编辑器不同,但是如果您仔细想想,更改模式的概念并不陌生。
Vim 插件
Vim 是可扩展的,这意味着您可以通过插件向其添加功能。凭借数十年的历史,Vim 有大量有用的插件可供选择,甚至还有像 Vim Awesome 这样的整个网站专门介绍 Vim 插件。
您可以手动安装插件或使用像 Vim-plug 这样的 Vim 包管理器。如果您是 Vim 的休闲用户,您很容易通过插件依赖于 Vim。从简单的 配色方案 到 文件管理器,插件是 Vim 让您不断回来的方式。
成为 Vim 专家
精通 Vim 需要一些练习,在最初的一周左右,您会感觉好像有人秘密地重新排列了您键盘上的键(并偷走了您的鼠标)。但是,完成 vimtutor 有助于您打下坚实的基础,而我们的 Vim 速查表 在很大程度上缓解了记住重要命令的压力。很快,您就会发现自己像第二天性一样使用 Vim,最终,您会发现自己在所有喜欢的应用程序中都心不在焉地按下 Esc 键。