如何更改 Ubuntu 中控制台程序的默认文本编辑器。当我运行 mutt 并发送消息时,它当前会加载 Joe,而我更愿意加载 Vim。我知道我只能为我自己更改 $EDITOR,但更愿意在整个系统范围内进行更改。
答案1
您可以更改系统范围内的 $EDITOR。只需将一个简短的脚本放入/etc/profile.d/
其中即可。该文件只需要一行:
export EDITOR=/usr/bin/myeditor
编辑:
程序可以通过两种方式(至少 :-/)找到要启动的编辑器。传统的 Unix/Linux 机制是使用 $EDITOR。除此之外,Debian(以及 Ubuntu)为各种程序提供了特殊别名。这些由“替代”系统(可配置符号链接系统)提供。对于编辑器,它提供了别名editor
和sensible-editor
。可以使用 update-alternatives 更新这些别名:
sudo update-alternatives --config editor
(与 sensible-editor 相同)。这将提示您使用哪个编辑器。
然而,在 Debian 中程序应该首先读取 $EDITOR:
因此,每个启动编辑器或分页器的程序都必须使用 EDITOR 或 PAGER 环境变量来确定用户希望使用的编辑器或分页器。如果未设置这些变量,则应分别使用程序 /usr/bin/editor 和 /usr/bin/pager。
这两个文件通过 dpkg“替代方案”机制进行管理。
[...]
如果很难让程序使用 EDITOR 或 PAGER 变量,则可以将该程序配置为分别使用 /usr/bin/sensible-editor 和 /usr/bin/sensible-pager 作为编辑器或分页程序。
(Debian 政策手册,http://www.debian.org/doc/debian-policy/ch-customized-programs.html#s11.4)
一句话:全局设置 $EDITOR 就足够了。
答案2
ubuntu (debian) 中用于解决此问题的机制在 中有描述man update-alternatives
。本质上,它提供了一个“伪二进制文件”(/usr/bin/editor
),指向正确的二进制文件(“最佳”替代方案)
称呼
% sudo update-alternatives --config editor
更改当前的“默认”。使用
% update-alternatives --list editor
% update-alternatives --display editor
您可以看到当前可用的替代方案。