如何在 Ubuntu 上使用 Snap 安装 nvim 后将其添加到 update-alternatives?

4
我想将 nvim(一个 snap 包)添加到 update-alternatives 中。问题在于,snap 在确定要运行哪个程序时似乎是用神秘的方式工作的:
$ sudo update-alternatives --install /usr/bin/vim vim /snap/bin/nvim 60

$ vim # works

$ vim hello.txt
error: unknown command "hello.txt", see 'snap help'.

如果我查看/snap/bin/nvim,它是指向/usr/bin/snap的链接:
$ ls -lah /snap/bin/nvim
lrwxrwxrwx 1 root root 13 Jan 25 15:02 /snap/bin/nvim -> /usr/bin/snap

但 snap 可执行文件如何确定需要运行 nvim 呢?

2个回答

10
你需要按照@Felipe Francisco的回答中所解释的方式设置一个别名。
sudo snap alias nvim vim

源代码:https://snapcraft.io/docs/commands-and-aliases
作为一种替代方案,您可以创建一个启动nvim的脚本,如下所示:
#!/usr/bin/env bash
/usr/bin/snap run nvim ${@}

假设你将其命名为nvim_start.sh。现在你可以在update-alternatives命令中使用这个脚本(记得启用执行标志)。
CUSTOM_NVIM_PATH=/usr/bin/nvim_start.sh
sudo chmod +x "${CUSTOM_NVIM_PATH}"
set -u
sudo update-alternatives --install /usr/bin/ex ex "${CUSTOM_NVIM_PATH}" 110
sudo update-alternatives --install /usr/bin/vi vi "${CUSTOM_NVIM_PATH}" 110
sudo update-alternatives --install /usr/bin/view view "${CUSTOM_NVIM_PATH}" 110
sudo update-alternatives --install /usr/bin/vim vim "${CUSTOM_NVIM_PATH}" 110
sudo update-alternatives --install /usr/bin/vimdiff vimdiff "${CUSTOM_NVIM_PATH}" 110
sudo update-alternatives --set ex "${CUSTOM_NVIM_PATH}"
sudo update-alternatives --set vi "${CUSTOM_NVIM_PATH}"
sudo update-alternatives --set view "${CUSTOM_NVIM_PATH}"
sudo update-alternatives --set vim "${CUSTOM_NVIM_PATH}"
sudo update-alternatives --set vimdiff "${CUSTOM_NVIM_PATH}"

谢谢,我已经拼凑了一个类似的脚本,一直可以工作到现在,但是你的看起来更好,所以我会选用你的:D - ashleysmithgpu

0
你可以做:
sudo snap alias nvim vim

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接