使用 less 时如何进入和退出 Vim 编辑模式?

使用 less 时如何进入和退出 Vim 编辑模式?

在查看日志或配置文件时,我主要使用较少的内容,因为我希望它是只读的。

然而,每隔一段时间我就会进入 Vim 模式,在其中我可以对我想要只读的文件进行更改。我不知道我该怎么做。 (可能右键单击粘贴,但仍然较少)。但最重要的是,我不知道如何在不编写更改的情况下退出此模式。通常:q!不起作用,也不起作用:退出。

如果尝试输入我收到的消息:quit

E37: No write since last change (add ! to override)

Ctrl C:quit<Enter>但不起作用:

Type  :quit  and press <Enter> to exit Vim

这些是我在控制台看到的一些内容,但我无法控制它。有时它会进入插入模式,我正在修改文件,但我不知道如何停止它。

搜索为我提供了 vi 的说明,而不是 less 中的 vi,并且命令不起作用。到目前为止,我唯一的解决方案就是断开连接并希望没有任何损坏。

最后,有没有办法在更少的时间内关闭此功能,以免再次发生?

更新:我终于可以出去了。我像以前一样输入:q!,但底部写着“录音”。另外,如果我开始打字,它将进入插入模式。我仍然不知道如何进入其中或如何得到录音提示。

正如 roaima 所建议的,我在手册页中进行了搜索,我以前有过。我发现v进入编辑模式。我不知道如何按 v,因为 ctrl+v 不起作用,右键单击也不起作用。另外,使用 v 时它会闪烁一秒钟并加载到页面底部。我还注意到我无法立即输入并且无法退出:q!。我尝试了 Esc,然后按 Ctrl+C,这给出了 :quit 提示,其中 :q!工作了。我觉得我仍然想念我是如何不小心进入这种模式以及如何保证安全退出的。我确实发现编辑不适用于标准输入,因此这less filename | less是确保我不会意外编辑的解决方法。

答案1

使用 less ( ) 的文档,man less可以发现要输入的组合键vi(或您的其他首选编辑器)是v

v调用编辑器来编辑当前正在查看的文件。VISUAL如果已定义或未定义,则从环境变量中获取编辑器;EDITOR如果既未定义也VISUAL未定义,则默认为“ vi” 。另请参阅下面“提示”部分的讨论。VISUALEDITORLESSEDIT

less您可以使用 在中搜索文本/,就像在 中一样vi。 (/vi Enter将找到这两个字母的下一个实例;使用n查找下一个实例。)与往常一样,使用ZZ:q!退出vi

正如中提到的一条评论less您可以通过设置环境变量来覆盖默认编辑器设置LESSEDIT

默认值为LESSEDIT

%E ?lm+%lm. %g

请注意,这会扩展为编辑器名称,后跟 a+和行号,最后是 shell 转义的文件名。

例如,这将设置false为编辑器,即您将无法使用它v来编辑文件:

LESSEDIT=false less /var/log/syslog

您还可以less使用标准输入,无法编辑。然而,这样的效率要低得多,并且可能会占用大文件的内存:

less </var/log/syslog

您可能还想调查设置LESSSECURE=1

相关内容