Contents

Vim中保存和退出

1. 简介

Vim 是一个强大的工具,随大多数 Linux 和 Unix 系统(包括 macOS)一起发布。无论是选择的编辑器还是编写git提交描述的快速方法,有时都会让人感到困惑。

在本文中,我们将解密每个人都应该知道的基础知识:如何保存和退出。

2. 保存退出

首先,假设我们已经知道如何打开文件并对其进行编辑。默认情况下, Vim以正常模式启动,也称为命令模式。这种模式是我们将编写命令的地方。我们可以使用Esc键从插入模式切换回普通模式。

当我们打开一个文件时,Vim会创建一个缓冲区。本质上,这是文件内容的临时副本。因此,为了保存我们的更改,我们用这个缓冲区覆盖了原始文件:w命令是*:write*的简写版本,将执行以下操作:

:w

也许,我们可能想将缓冲区保存到不同的文件中。我们也可以使用不与任何文件关联的缓冲区。在这些情况下,目标路径可以作为参数提供。它可以是现有文件或我们希望创建的新文件:

:w {file path}

现在,我们已经保存了我们的更改,我们可能想要退出。:q命令是*:quit*的简写,退出当前缓冲区:

:q

假设我们正在处理一个文件或缓冲区,这也将退出应用程序。

如果出现任何问题, Vim会给出有用的警告并终止操作。当我们有未保存的更改时尝试退出就是这样一种情况。另一种是以只读模式打开文件,然后决定修改并保存它。在这两种情况下,我们都可以强制采取尾随行动*!*:

:w!
:q!

注意,虽然*!在我们的上下文中强制执行,它在Vim*中没有普遍意义。

3.组合命令

:wq命令将同时保存和退出:

:wq

单独讨论的保存和退出的场景也可以在这里发生。例如,当我们试图保存一个未命名的缓冲区时,我们需要提供一个目标文件路径:

:wq {file path}

同样,当我们以只读模式打开文件后需要修改时,可以强制保存并退出:

:wq!

还有另一个有用的命令。:x命令是*:xit:exit*的简写,也将保存并退出:

:x

但是,有一个关键区别。与*:x不同,: w:wq命令将更改最后修改日期,即使文件内容未发生*任何更改也是如此。**重要的是要考虑,以防流程被此类更改触发。