充分利用 Vi 文本编辑器

Vi 是典型的 Unix 文本编辑器。 了解它——或它的任何化身,如 Vim、Neovim、gVim、nvi 或 Elvis,适用于 Linux、macOS、Windows 或 BSD。
77 位读者喜欢这个。
Business woman on laptop sitting in front of window

图片由 Mapbox Uncharted ERG 提供, CC-BY 3.0 US

无论您知道它叫 Vim、Neovim、gVim、nvi 还是 Elvis,典型的 Unix 编辑器都非 Vi 莫属。 Vi 包含在几乎所有 Linux 和 BSD 发行版中,是一个轻量级和简约的文本编辑器,许多用户喜欢它简单的键盘快捷键和双模式设计。

最初的 Vi 编辑器是 Bill Joy 编写的应用程序,他是 C shell 的创建者。 现代版本的 Vi 增加了许多功能,包括多级撤消、在插入模式下更好的导航、行折叠、语法突出显示、插件支持等等。 Vim 被认为是最流行的现代实现,大多数人在提到 Vi 时实际上是指 Vim。

所有版本都回归到相同的目标,因此本文从广义上探讨 Vi。 您计算机上的实现可能略有不同,但您仍然可以从以 Vi 方式编辑文本中受益。

安装 Vi

如果您运行的是 Linux、macOS 或 BSD,那么您已经安装了 vi 命令。 如果您使用的是 Windows,您可以下载 Vim 和 gVim

NetBSD 上,nvi 是 Vi 的常见替代品,而 Slackware 提供了 Elvis(和 Vim),流行的 Neovim 分支旨在帮助用户使用 Lua 扩展 Vim。

启动 Vi

使用终端中的 vi 命令启动 Vi 或 Vim。 如果您的系统上未找到 .vimrc 文件,则 Vim 将以 Vi 兼容模式启动(也可以使用 -C 选项强制执行)。 如果您想使用 gVim 获得图形用户界面 (GUI),您可以从桌面的应用程序菜单启动它。

如果您是刚开始学习 Vi 的新用户,使用图形用户界面可能是一种很好的方式,可以为您自己提供一个缓冲,避免您可能 *期望* 文本编辑器的行为与 Vi 的设计行为之间的差异。 GUI 版本具有菜单栏、一些鼠标集成、工具栏和其他功能,可以帮助您找到您可能认为在典型文本编辑器中理所当然的基本功能,但您还不知道如何在 Vi 中执行这些功能。

如何使用 Vi

学习 Vi 最简单的方法可能是使用 vimtutor,它是 Vim 附带的交互式教程。 要启动本教程,请启动 vimtutor 并阅读说明,尝试每个练习。 正如本教程所说,掌握 Vi 的关键不在于记住哪个键做什么,而在于建立肌肉记忆,以便在您键入时调用常用操作。

Escape

您了解 Vi 的第一件事是 Esc 键的重要性。 Esc 是激活命令模式的键,很快您就会知道,在 Vi 中遇到任何疑问时,只需按 Esc 即可。 在命令模式下按下的任何键都不会输入到您正在处理的文本文档中; 相反,Vi 会将其解释为命令。 例如,要将光标向左移动,请按键盘上的 H 键。 如果您处于插入模式,则按 H 会键入字母 H,正如您所期望的那样。 但是在命令模式下,按 H 向左移动,L 向右移动,J 向下移动,K 向上移动。

命令模式和插入模式之间的分离与其他任何文本编辑器的工作方式形成了鲜明对比,因此,这可能是 Vi 最重要的区别。 然而,有趣的是,从理论上讲,它与您可能已经使用的工作方式并没有太大不同。 毕竟,当您将手从键盘上移开以使用鼠标选择文本时,您本质上是将自己置于某种命令模式。 使用 Vi,您无需将手从键盘上移开来移动鼠标并按下功能键或 Ctrl,而是将*编辑器*置于一种特殊的操作模式,这样它就会将您的按键重新分配给命令而不是文本输入。

扩展 Vi

在 Vim 8.0 版本之前,Vi 在很大程度上“只是”一个文本编辑器。 有它的插件,但安装它们是一个手动过程,许多用户从未想过要这样做。 幸运的是,Vim 8 及更高版本提供了对插件管理的支持,使得安装和加载插件变得非常简单。

可以使用 vim-plug 函数完成 Vim 插件的安装。 例如,要安装 Vi 文件浏览器 NERDTree

:PlugInstall NERDTree

您还可以更新插件

:PlugUpdate NERDTree

有关使用 vim-plug 和手动安装插件和主题的更多信息,请阅读我的文章 如何安装 Vim 插件

Vi 作为默认

Vi 不仅仅是流行;它还是一个 POSIX 标准。 这是每个系统管理员都应该知道如何使用的应用程序,即使他们不打算每天都使用它。 它也是一个快速而简单的编辑器,因此一旦您精通它,它可能就是您一直在寻找的编辑器。

接下来阅读

我为什么喜欢 Emacs

Emacs 不仅仅是一个文本编辑器;它让您掌控一切,并允许您解决遇到的几乎任何问题。

Seth Kenlon
Seth Kenlon 是一位 UNIX 极客、自由文化倡导者、独立多媒体艺术家和 D&D 爱好者。 他曾在电影和计算行业工作,通常同时从事这两项工作。

3 条评论

“如果您的系统上有 .vimrc 文件,Vim 将以 Vi 兼容模式启动。”

这是不正确的。 来自 :help 'compatible'

当 Vim 启动时找到 vimrc 或 gvimrc 文件时,
此选项将被关闭,所有尚未被
修改的选项都将被设置为 Vim 默认值。 实际上,这意味着
当存在 vimrc 或 gvimrc 文件时,Vim 将使用 Vim
默认值,否则它将使用 Vi 默认值。

在您学习如何退出编辑器后,您会开始发现如果您留在编辑器中会更有趣。

搜索光标下的单词:*

跳转到匹配的括号:%

更改引号内的内容:ci"

复制引号周围的内容:ya"

前两个属于“motion”类别,后两个是组合。

动词 -> change c, yank y, delete d

副词 -> inside i, around a

Motion -> inside quotes i", around quotes a"

https://dev.to/jessekphillips/after-vi-basics-4ji0

Creative Commons License本作品已根据 Creative Commons Attribution-Share Alike 4.0 International License 获得许可。
© . All rights reserved.