学习使用 vi 文本编辑器对于任何在 Linux 环境下工作的人来说都是必不可少的。虽然适应其工作方式需要一些时间,但掌握 vi 命令能让你在无需离开终端或使用鼠标的情况下,极其快速地编辑文件。

2026.05 河北·秦皇岛·山海关区 天下第一关景区

在本文中,我们将介绍你所需的 vi 核心命令,以便像专家一样导航、编辑和保存文本文件。

什么是 vi 编辑器?

vi 编辑器由 Bill Joy 于 1976 年创建,是一款快速、轻量级的文本编辑器,允许你直接在终端窗口中操作文本文件。大多数现代 Linux 系统使用名为 vim(vi improved,增强版 vi)的更新版本,但大多数 vi 命令在 vim 和 vi 中都有效。由于它几乎预装在每一个类 Unix 系统上,掌握 vi 的使用是管理服务器和编写脚本的一项有用技能。

理解 vi 的几种模式

要掌握 vi 命令,你必须理解 vi 是一个模式编辑器。与大多数程序直接开始键入不同,vi 根据你所在的模式改变其行为:

  • 命令模式:打开文件时的默认模式。你按下的每个键都作为命令执行——例如移动光标或删除一行——而不是输入文本。
  • 插入模式:在此模式下你可以在文件中实际输入文本。按 i 进入该模式,按 `` 键返回命令模式。
  • 末行模式:在命令模式下,输入冒号 (:) 会进入第三个独特的模式,在此模式下可以执行终端级命令。

要开始使用,请在终端中使用以下命令打开或创建文件:

  • vi <文件名>——打开现有文件或创建新文件。

vi 编辑器导航

vi 编辑器始终从命令模式启动。虽然现代版本的 vi 允许你使用方向键,但传统的 vi 移动命令让你可以保持手指在键盘的基准行上,从而更快地工作。

  • h – 向左移动光标
  • j – 向下移动光标
  • k – 向上移动光标
  • l – 向右移动光标
  • 0(零)– 跳转到当前行开头
  • $ – 跳转到当前行末尾
  • e – 跳转到下一个单词的末尾
  • w – 向前跳转到下一个单词的开头
  • b – 向后跳转到上一个单词的开头
  • :1 – 跳转到文档的第一行
  • G – 跳转到文档的最后一行
  • :[数字] – 直接跳转到指定行号
  • :set nu – 在左侧显示行号

搜索与搜索/替换

使用以下 vi 命令快速搜索文件中的特定内容,或执行全局搜索与替换:

  • /[搜索词] – 向前搜索 [搜索词]
  • n – 重复向前搜索
  • N – 重复向后搜索
  • :%s/old/new/g – 全局搜索并替换,将 [old] 替换为 [new]

输入与追加文本

要添加新文本,你需要从命令模式切换到插入模式。使用以下 vi 命令在所需位置开始插入文本:

  • i – 在当前光标位置前插入文本
  • I – 在当前行的最开头插入文本
  • a – 在当前光标位置后追加文本
  • A – 在当前行的最末尾追加文本
  • o – 在当前行下方新开一行并进入插入模式
  • O – 在当前行上方新开一行并进入插入模式

编辑、删除与管理文本

Vi 只需几个按键就能轻松删除、复制或移动文本。以下 vi 命令帮助你快速清理文件:

  • x – 删除光标所在的字符
  • dw – 从光标位置删除到单词末尾
  • dd – 删除(剪切)当前整行
  • [数字]dd – 删除指定行数
  • yy – 复制(抽取)当前行
  • [数字]yy – 复制指定行数
  • p – 在光标后粘贴已删除或复制的文本
  • P – 在光标前粘贴已删除或复制的文本
  • u – 撤销上一次操作

保存工作与退出

完成工作后,按 `` 确保你处于命令模式。然后使用末行模式命令(以冒号开头)保存文件或退出编辑器:

  • :w – 保存(写入)文件但停留在编辑器中
  • :wq – 保存并退出
  • :q! – 退出并丢弃所有未保存的更改
  • ZZ – 快速保存并退出的快捷键(不需要冒号)

掌握 vi 编辑器是 IT 从业者和 Linux 爱好者必经的修炼之路。虽然其模式特性需要一些时间适应,但将这些核心 vi 命令内化为肌肉记忆将极大地加速你的终端工作流和服务器管理效率。在练习时将这份 vi 命令参考页面收藏起来,很快你就能在不离开基准行的情况下快速处理配置文件。

了解更多

  • 5 Vim features for power users
  • Linux basics: A beginner’s guide to text editing with vim
  • Top five Vim plugins for sysadmins
  • No cost training: Red Hat Enterprise Linux Technical Overview

常见问题解答:关于 vi 编辑器的常见问题

  1. 为什么要使用 vi 编辑器而不是像 Nano 这样更简单的编辑器?

Nano 对新手友好,但一旦学会 vi 命令,它能让文本操作快得多。由于 vi 几乎安装在每个类 Unix 系统上,在管理远程服务器时,当其他编辑器可能不可用时,vi 是必不可少的。

  1. 我在 vi 编辑器中卡住了,无法输入!该怎么办?

你很可能处于命令模式。按 i 进入插入模式即可输入。如果想退出,按 `` 返回命令模式,然后输入 :q! 不保存退出。

  1. vi 和 vim 有什么区别?

Vim 代表“vi improved”(增强版 vi)。它包括语法高亮、多级撤销和更好的导航等功能。在大多数现代系统(如 Red Hat Enterprise Linux)上,输入 vi 实际上会以兼容模式打开 vim。

  1. 如何在大型文件中查找特定单词?

在命令模式下,输入 / 后跟你要查找的单词(例如 /searchterm),然后按 ``。按 n 跳转到下一个匹配,按 N 跳转到上一个匹配。

  1. 如何全局搜索并替换文本?

要替换文件中的每一个实例,使用命令 :%s/old/new/g% 告诉 vi 查看整个文件,g(全局)意味着替换行中的每个实例,而不仅仅是第一个。

  1. 如果使用 vi 时连接断开,我能恢复文件吗?

可以。vi 通常会创建一个交换文件(例如 .filename.swp)。如果会话意外结束,下次登录时可以尝试运行 vi -r <文件名> 来恢复工作。