如何退出 Vi 或 Vim 编辑器

如果你对vi编辑器不熟悉,可能会感到困惑。如果你意外地进入了这个程序,你需要一些“秘诀”才能退出。以下是如何在Linux、macOS或其他类Unix系统中退出vi或vim的方法。

快速解答

如果你正在使用vi或vim,并且想要退出(无论是否保存更改),可以这样做:

首先,多次按下Esc键。这将确保vi退出插入模式,进入命令模式。其次,输入:q!并按Enter键。这会告诉vi退出,而不保存任何更改。(如果你确实想保存更改,输入:wq即可。)

如果你想学习Linux命令行,你需要掌握的远不止这些。请继续阅读,我们将向你介绍vi的工作原理,以及为什么它的退出方式如此不同寻常。vi是一个重要且强大的工具,值得花时间学习。

无处不在的vi编辑器

由于vi的普及性,你很可能会遇到它。你甚至可能在不知不觉中就进入了vi。也许有人请你帮忙查看他们的Linux电脑。当你输入类似crontab -e的命令时,vi就会突然出现。原来,有人将crontab的默认编辑器设置为了vi。

或者,你可能正在管理一个系统,vi是唯一的编辑器,或者唯一可以通过远程SSH会话工作的编辑器,而你需要编辑用户的.bashrc文件。

启动vi并打开文件的命令很简单。输入vi,一个空格,然后是文件名,并按Enter键。启动的程序可能是vi,也可能是vim(“改进的vi”)。这取决于你的Linux发行版——例如,Ubuntu使用vim。本文中的所有说明同样适用于vim。

vi .bashrc

vi和其他编辑器最显著的区别在于,当vi启动时,你不能直接开始输入文本。这是因为vi是一个模态编辑器。编辑在插入模式下进行,而发出命令则在命令模式下进行。vi默认启动时处于命令模式。

如果你不熟悉插入模式和命令模式的概念,可能会感到困惑。你在命令模式下输入的许多命令都会影响你正在编辑的文件。如果你处于命令模式,却错误地尝试在文件中输入文本,结果可能会很糟糕。你输入的一些按键会被识别为命令,这些命令可能会删除或分割行、移动光标或删除文本。

而且,无论你输入什么,你都找不到退出或离开编辑器的方法。与此同时,你的文件变得一团糟,并且会发出一些让你感到疯狂的随机响声。

命令模式与插入模式

你需要将vi切换到你想要执行操作的对应模式。

命令模式是vi启动时的默认模式。如果你不了解情况,你可能会直接尝试输入。如果你恰巧按下了“i”键,或者其他10个可以进入插入模式的键(a、A、c、C、I、o、O、R、s和S)中的任何一个,你就会突然看到你输入的内容。你现在处于插入模式。

在你按下箭头键之前,这可能看起来像是进步。但是如果你按下箭头键,A、B、C或D会作为独立的字母出现在另一行空白的新行上,且位于文件的顶部。

没关系,我们在这里帮助你。当你了解了如何操作之后,这其实非常容易。记住这两个按键:Esc键带你进入命令模式,“i”键带你进入插入模式。

你需要处于命令模式,并输入正确的命令才能退出编辑器。

从命令模式到安全退出

要进入命令模式,请按Esc键。可能没有任何变化发生。再按几次。如果你在按下Esc键时听到“哔”的一声,那么你已经处于命令模式了。“哔”声告诉你“不要再按Esc了,你已经处于命令模式了”。如果你在按下Esc键时听到“哔”声,那就没问题了。

输入一个冒号,字母“q”和一个感叹号,不要加任何空格。这三个字符应该出现在终端底部行的最左侧。如果没有,请按Esc键直到听到“哔”声,然后再试一次。当你看到它们时,按Enter键:

:q!

在这个命令中,q是quit的缩写。感叹号增加了语气,就像你在大喊“退出!”一样。这可能会让你感觉好一点。

感叹号还表示vi不会保存你对文件所做的任何更改。如果你在vi中犯了错误,并且不清楚自己在做什么,那么你可能不想保存你造成的破坏。

返回命令行后,你可能需要检查一下以确保文件没有被修改。你可以使用以下命令来完成:

cat .bashrc | less

当你退出vi时,如果你看到一条消息说“自从上次更改后没有写入”,这意味着你错过了命令中的感叹号。为了防止你退出并丢失任何你可能想要保留的更改,vi会给你保存它们的机会。只需重新发出:q!命令,加上感叹号,就可以退出vi并放弃任何更改。

如果你确定,请保存你的更改

如果你对你对文件所做的更改感到满意,你可以使用:wq(写入并退出)命令退出并保存更改。在继续操作之前,请确保你完全满意你希望将屏幕上的编辑写入文件。

输入一个冒号,字母w(写入)和字母q(退出)。当你在终端的左下方看到它们时,按Enter键:

:wq

学习曲线是值得的

使用vi有点像使用钢琴。你不能只是坐下来就能使用它;你需要进行一些练习。当你面临编辑某些东西的压力时,临时抱佛脚地尝试学习vi并不是一个好的方法。这就像你第一次坐在钢琴前,却发现你的就职音乐会马上就要开始了。

vi的大部分功能来自其许多按键组合,每一个组合都执行一个常见的编辑任务。这很好,但是在你记住它们、练习它们并将它们变成你肌肉记忆的一部分之前,你无法从中受益。

在那之前,如果你发现自己在vi中查看一个重要文件,只需输入:q!并优雅地退出即可。你的重要文件会感谢你的。