如何将我想要的编辑器添加到“update-alternatives”交互式菜单中?

the*_*fog 7 alternative update-alternatives

我刚刚在数字海洋服务器上安装了 ubuntu 16.04.2 32 位。

Digital Ocean 对 ubuntu 安装进行了一些调整,例如他们安装了完整的 vim 作为他们在 VPS 中使用的块映像的一部分。我现在想使用这个 - 预安装 - vim 作为我的默认编辑器。所以我跑

sudo update-alternatives --config editor
Run Code Online (Sandbox Code Playgroud)

这给了这个菜单

$ sudo update-alternatives --config editor
There are 4 choices for the alternative editor (providing /usr/bin/editor).

  Selection    Path                Priority   Status
------------------------------------------------------------
* 0            /bin/nano            40        auto mode
  1            /bin/ed             -100       manual mode
  2            /bin/nano            40        manual mode
  3            /usr/bin/vim.basic   30        manual mode
  4            /usr/bin/vim.tiny    10        manual mode

Press <enter> to keep the current choice[*], or type selection number:
Run Code Online (Sandbox Code Playgroud)

注意:vim 不是一个选项

我在想数字海洋没有将 vim 安装添加到更新替代系统中?
/user/bin/vim程序添加到此菜单的推荐方法是什么?
我想我可以覆盖/usr/bin/editor替代系统添加的符号链接,或者添加/etc/alternatives指向的符号链接/usr/bin/vim?但我想在我在数字海洋黑客之上进行“黑客”之前尝试“官方”方式。

小智 14

首先将编辑器设置为正确的路径:

sudo update-alternatives --install /usr/bin/editor editor /usr/local/bin/vim 1 && \
sudo update-alternatives --set editor /usr/local/bin/vim
Run Code Online (Sandbox Code Playgroud)

然后是别名:

sudo update-alternatives --install /usr/bin/vi vi /usr/local/bin/vim 1 && \
sudo update-alternatives --set vi /usr/local/bin/vim
Run Code Online (Sandbox Code Playgroud)

不要忘记上面两个代码块第一行末尾附近的 1。

  • 这应该是公认的答案:它回答了如何将自定义编辑器添加到替代方案的问题 (3认同)

emk*_*203 8

这没有被修改,而是直到 Zesty 的标准 Ubuntu 行为。如果您ls -lvim( /usr/bin/vim)上执行 a操作,您会看到它是一个指向 的链接/etc/alternatives/vim,而后者又链接到/usr/bin/vim.basic

执行vim --versionorvim.basic --version还表明它们实际上是相同的完整的“巨型”vim版本 8.0,没有 GUI。

回答您的问题: 菜单选择vim.basic为您提供所需的完整vim版本。只是这个名字具有误导性。


小智 7

您可以使用单个命令添加任何新编辑器并将其设置为默认值。在此示例中,您将添加微型编辑器,该编辑器位于/usr/bin/micro作为更新替代编辑器,优先级为100。命令是:

sudo update-alternatives --install /usr/bin/editor editor /usr/bin/micro 100
Run Code Online (Sandbox Code Playgroud)

如果之前没有选择,系统将默认使用优先级最高的编辑器。因此,通过这个命令,您可以添加一个新编辑器,并将其用作默认编辑器。您所需要的只是优先级大于更新替代列表中的任何先前优先级。