我正在研究 Ubuntu 如何选择默认编辑器,我注意到要设置编辑的默认编辑器crontabs
,我使用while 来设置我使用的select-editor
默认编辑器。有人知道这两者之间的具体区别吗?有很多文档分别解释了每一个,但我无法弄清楚两者之间的区别或为什么我必须同时设置两者。visudo
update-alternatives --config editor
为了完整起见,我想指出我知道如何通过设置 EDITOR 和 VISUAL 环境变量来设置默认编辑器。
答案1
select-editor
是每个用户的选择器...它可以帮助您选择默认的sensible-editor
来自所有已安装的编辑器...它会影响文件~/.selected_editor
,例如在我的系统上:
$ cat ~/.selected_editor
# Generated by /usr/bin/select-editor
SELECTED_EDITOR="/bin/nano"
请参见man select-editor
:
选择编辑器 提供一种一致的机制,用于根据每个用户选择和存储首选的 sensible-editor。它列出系统上可用的编辑器并以交互方式提示用户选择一个。结果作为 SELECTED_EDITOR 变量存储在 ~/.selected_editor 中,该变量由 sensible-editor 命令获取和使用。SELECTED_EDITOR 变量被 VISUAL 和 EDITOR 环境变量覆盖。
update-alternatives
另一方面,是一个系统范围的选择器...它可以帮助您设置默认行为,例如系统命令调用的编辑器...... visudo
是这样的命令...它通过处理哪个编辑器/usr/bin/editor
调用来实现...作为符号链接,例如在我的系统上:
$ ls -l /usr/bin/editor /etc/alternatives/editor
lrwxrwxrwx 1 root root 9 Jan 8 2022 /etc/alternatives/editor -> /bin/nano
lrwxrwxrwx 1 root root 24 Jan 8 2022 /usr/bin/editor -> /etc/alternatives/editor
请参见man update-alternatives
:
更新替代方案 创建、删除、维护并显示有关组成 Debian 替代系统的符号链接的信息。
可以同时在单个系统上安装多个具有相同或类似功能的程序。例如,许多系统会同时安装多个文本编辑器。这为系统用户提供了选择,允许每个用户根据需要使用不同的编辑器,但如果用户未指定特定的首选项,程序将很难为要调用的编辑器做出良好的选择。