如何将Vim设置为Linux(Ubuntu)中的默认文本编辑器?

Cho*_*pok 7 vim default text-editor

我找到了另一种方法将 Vim 设置为 Ubuntu 中的默认文本编辑器,但我想知道为什么本教程不适合我:

https://www.a2hosting.com/kb/developer-corner/linux/setting-the-default-text-editor-in-linux

这就是我所做的:

我通过添加以下两行来编辑 ~/.bashrc:

export EDITOR='vi'
export VISUAL='vi'
Run Code Online (Sandbox Code Playgroud)

然后我输入命令:

source .bashrc
Run Code Online (Sandbox Code Playgroud)

我还尝试注销我的帐户,然后重新登录,但仍然无法正常工作。

当我尝试打开 /etc/sudoers 文件时,它使用 Nano 文本编辑器而不是 Vim 打开。

小智 20

以下命令更改系统的默认编辑器:

sudo update-alternatives --config editor

系统将提示您可用的编辑器,从列表中选择 vim。


Not*_*1ds 5

不幸的是,您访问的链接是由 ChatGPT 生成的,它演示了 AI 生成的内容的一些问题(以及为什么我们在 Ask Ubuntu 上禁止 AI 生成的答案)请参阅脚注。看到一家信誉良好的托管提供商使用 ChatGPT 生成的文章,令人惊讶,也有点令人失望。

现实情况是,从历史上看,选择编辑器的方法有很多种,并且不同的应用程序使用不同的方法。ChatGPT 提出了一个很好的“猜测”(就像它经常做的那样),但该方法仅适用于某些应用程序,因此我认为它是“错误的”,作为一篇关于“如何设置默认文本编辑器”的文章的答案在Linux中”。正确的答案更像是“这取决于应用程序”

例如:

  • crontab -e用于select-editor允许用户在第一次运行时选择他们喜欢的编辑器。但是,如果存在任何一个,则EDITOR和环境变量将覆盖此选择。VISUAL

  • 相反,git默认为 using ,它可以通过或环境变量vi的存在来覆盖,而环境变量又可以通过Git 配置来覆盖。EDITORVISUALcore.editor

  • visudo 可以使用EDITORVISUAL变量,但只有(如果我阅读man visudo正确的话)如果editorenv_editor设置是在sudoers. 默认情况下,如果没有这些设置和变量,则默认为/usr/bin/editor. 在 Ubuntu 系统下alternatives/usr/bin/editor是一个指向 的符号链接/etc/alternatives/editor,而后者又是指向您首选编辑器的符号链接(nano默认情况下)。

    正如其他现有答案中提到的,可以使用该命令更新此符号链接(与替代系统中的任何符号链接一样)update-alternatives

这些选择默认编辑器的方法甚至可能因发行版而异,并且一些默认值可以编译到应用程序中。


脚注

当然,人类很容易犯类似的错误(我不能保证我的错误不是没有错误),但 ChatGPT(至少目前)似乎有能力提供不完全答案答案所提出的问题(如在本例中),或更糟糕的是,完全弥补了甚至不存在的设置。