1

我执行了这两个命令:

export VISUAL=/usr/bin/vim
export EDITOR=/usr/bin/vim

我检查了它们是否正确更新env。但是当我运行时,我得到了一个奇怪的编辑器sudo visudo

虽然我不认识编辑器,但在控制台底部它说:

-----Mg: sudoers.tmp                  (fundamental)----Top------------------
(Read 29 lines)

这个编辑器没用,因为我不能移动光标。我能做的是关闭控制台。

是什么让这个奇怪的编辑器运行起来?我应该执行什么命令来更改编辑器?

4

2 回答 2

2

来自:man visudo(第二段):

有一个 visudo 将在编译时使用的一个或多个编辑器的硬编码列表,可以通过编辑器 sudoers 默认变量覆盖。此列表默认为 /usr/local/bin/vi。通常, visudo 不支持 VISUAL 或 EDITOR 环境变量,除非它们包含上述编辑器列表中的编辑器。但是,如果 visudo 配置了 --with-env-editor 选项或在 sudoers 中设置了 env_editor 默认变量,则 visudo 将使用由 VISUAL 或 EDITOR 定义的任何编辑器。请注意,这可能是一个安全漏洞,因为它允许用户通过设置 VISUAL 或 EDITOR 来执行他们希望执行的任何程序。

因此,要配置另一个编辑器,您需要更改/etc/sudoers配置并添加例如Defaults editor /usr/bin/vim一行。

奇怪的是 Vim 应该已经是默认编辑器了?!根据您的输出,可能来自 Vim(终端损坏)或其他编辑器(您可以检查进程树)。

于 2014-12-15T09:33:16.257 回答
1

这是一个类似于 emacs 的编辑器mg,您可以/应该阅读它的手册页,$ man mg了解它是如何工作的。

至于它是如何以及为什么成为你的默认编辑器的……你应该看看你的 init 文件。

于 2014-12-15T09:34:44.593 回答