我找到了另一种将 Vim 设置为 Ubuntu 中默认文本编辑器的方法,但我想知道为什么本教程对我不起作用:
https://www.a2hosting.com/kb/developer-corner/linux/setting-the-default-text-editor-in-linux
这是我所做的:
我通过添加以下两行来编辑 ~/.bashrc :
export EDITOR='vi'
export VISUAL='vi'
然后我输入命令:
source .bashrc
我也尝试注销我的帐户,然后重新登录,但仍然无法正常工作。
当我尝试打开 /etc/sudoers 文件时,它使用 Nano 文本编辑器而不是 Vim 打开。
以下命令更改系统的默认编辑器:
sudo update-alternatives --config editor
您将收到可用编辑器的提示,从列表中选择 vim。
不幸的是,您点击的链接是由 ChatGPT 生成的,它展示了 AI 生成的内容的一些问题(以及为什么我们在 Ask Ubuntu 上禁止 AI 生成的答案)参见脚注。看到信誉良好的托管服务提供商使用 ChatGPT 生成的文章,这既令人惊讶又有点令人失望。
事实上,从历史上看,选择编辑器的方法有很多种,不同的应用程序使用不同的方法。ChatGPT 提出了一个很好的“猜测”(正如它经常做的那样),但该方法仅适用于某些应用程序,所以我认为它是“错误的”作为一篇关于“如何设置默认文本编辑器”的文章的答案在 Linux 中”。正确答案更像是“这取决于应用程序”。
例如:
crontab -e
用于select-editor
允许用户在第一次运行时选择他们喜欢的编辑器。但是,如果其中一个存在,则EDITOR
和环境变量将覆盖此选择。VISUAL
相反,
git
默认为 usingvi
,它可以被EDITOR
orVISUAL
环境变量的存在覆盖,而后者又可以被core.editor
Git 配置覆盖。visudo
可以使用EDITOR
和VISUAL
变量,但前提是(如果我没看错man visudo
的话)如果editor
或env_editor
设置是在sudoers
. 默认情况下,在没有这些设置和变量的情况下,它默认为/usr/bin/editor
. 在 Ubuntu 下,alternatives
系统/usr/bin/editor
是指向 的符号链接/etc/alternatives/editor
,而后者又是指向您首选编辑器的符号链接(nano
默认情况下)。如其他现有答案中所述,可以使用
update-alternatives
命令更新此符号链接(与替代系统中的任何符号链接一样)。这些选择默认编辑器的方法甚至会因发行版而异,并且一些默认值可以编译到应用程序中。
脚注
当然,人类很容易犯类似的错误(我不能保证我的错误不会完全错误),但 ChatGPT(至少目前)似乎有提供不完全回答的答案的诀窍被问到的问题(如在这种情况下),或者更糟的是,完全构成了甚至不存在的设置。