Skip to content

Vim - 熟悉起来

本章将介绍 Vim 的基础知识,包括如何启动它、理解其模式以及执行基本的文件操作。让我们深入了解并亲手实践 Vim。

  • 启动 Vim (终端和 GUI)
  • 理解 Vim 的模式
  • 创建新文件
  • 以只读模式查看文件
  • 编辑现有文件

Vim 可以从终端启动,也可以作为独立的 GUI 应用程序 (如 GVim 或 MacVim) 启动。

如果你安装了 Vim 的 GUI 版本 (例如 Linux/Windows 上的 GVim,macOS 上的 MacVim),通常可以通过点击其应用程序图标来启动。这将打开一个新的 Vim 窗口。

GVim 窗口通常看起来像标准的文本编辑器,但其操作遵循 Vim 的模式编辑范例。

使用 Vim 最常见的方式是通过终端。这在 Linux、macOS 和 Windows (例如 Command Prompt、PowerShell 或 Windows Terminal) 上都可以稳定运行。

  1. 打开你的终端应用程序。
  2. 输入 vim 并按回车:
$ vim
  1. 这将启动 Vim,通常会显示一个欢迎屏幕。
  2. 要退出 Vim,请确保你处于普通模式 (Normal mode) (如果不确定,可以按几次 Esc),然后输入 :q 并按回车。如果你有未保存的更改,Vim 会发出警告。使用 :q! 退出而不保存。

在你输入时,命令 :q 将出现在终端的左下方。

Vim 的强大之处在于它的模式化特性。不同的模式用于执行不同的任务。以下是其中最重要的几种:

这是 Vim 启动时的默认模式。在普通模式下,键盘上的键充当用于导航、删除、复制、粘贴等操作的命令。你不能在这里直接输入文本。从任何其他模式按 Esc 可以返回普通模式。

提示:如果你不确定当前处于什么模式,可以按 Esc。它要么会将你带回普通模式,如果你已经在普通模式,则不执行任何操作。

此模式用于键入和编辑文本,与大多数其他编辑器类似。要从普通模式进入插入模式,常用的命令包括:

  • i (在光标前插入)
  • a (在光标后追加)
  • I (在行首插入)
  • A (在行尾追加)
  • o (在下方开启新行并进入插入模式)
  • O (在上方开启新行并进入插入模式)

在插入模式下,Vim 通常会在左下方显示 -- INSERT --。按 Esc 返回普通模式。

命令行模式 (Command-Line Mode) (Ex 模式)

Section titled “命令行模式 (Command-Line Mode) (Ex 模式)”

此模式用于输入更复杂的命令,例如保存文件 (:w)、退出 (:q)、查找和替换 (:%s/old/new/g) 或设置选项 (:set number)。

要从普通模式进入命令行模式,请键入 : (冒号)。光标将移动到屏幕底部,你可以在那里键入命令。按回车执行。按 Esc 取消并返回普通模式。

你也可以从插入模式进入此模式,方法是先按 Esc (进入普通模式),然后按 :。

可视化模式用于选择文本。一旦选中文本,你就可以对其执行操作 (例如,删除、复制、更改大小写)。

  • v (字符可视化模式):开始逐个字符选择。
  • V (行可视化模式):开始选择整行。
  • Ctrl-v (块可视化模式):开始选择矩形文本块。

从普通模式按这些键之一进入可视化模式。移动光标扩展选择范围。Vim 通常会在底部显示 -- VISUAL --、-- VISUAL LINE -- 或 -- VISUAL BLOCK --。按 Esc 退出可视化模式。

按照以下步骤创建新文件、添加文本并保存:

  1. 使用文件名打开 Vim (即使该文件尚不存在):
$ vim mydocument.txt
  1. 或者,启动 Vim ($ vim) 然后使用编辑命令:
  2. :edit mydocument.txt (或 :e mydocument.txt)
  3. Vim 现在处于普通模式,正在编辑 mydocument.txt (当前为空)。
  4. 按 i 切换到插入模式。
  5. 输入一些文本,例如:Hello, Vim world!
  6. 按 Esc 返回普通模式。
  7. 要保存文件,输入 :w (‘write’ 的缩写) 并按回车。文件 mydocument.txt 现在已保存到磁盘。
  8. 要退出 Vim,输入 :q 并按回车。

要以只读模式打开文件,避免意外修改的风险,请使用 -R 选项:

$ vim -R mydocument.txt

或者,你可以使用等效的 view 命令:

$ view mydocument.txt

当文件以只读模式打开时,Vim 通常会指示这一点 (例如在状态栏显示 [readonly]),并阻止写入,除非你强制执行 (例如使用 :w!)。

要编辑现有文件:

  1. 用 Vim 打开文件:
$ vim mydocument.txt
  1. 导航到你想进行更改的位置 (在普通模式下使用 h,j,k,l 或方向键)。
  2. 切换到插入模式 (例如按 i) 并进行编辑。
  3. 按 Esc 返回普通模式。
  4. 保存更改并退出:输入 :wq 并按回车。(或者,如果进行了更改,:x 也有同样效果)。
  5. 退出而不保存更改:输入 :q! 并按回车。