在查看日志或配置文件时,我主要使用较少的内容,因为我希望它是只读的。
然而,每隔一段时间我就会进入 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
” 。另请参阅下面“提示”部分的讨论。VISUAL
EDITOR
LESSEDIT
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
。