Linux 在Ubuntu下使用snap时,如何添加nvim以更新备选方案

Linux 在Ubuntu下使用snap时,如何添加nvim以更新备选方案,linux,ubuntu,nvim,Linux,Ubuntu,Nvim,我想将nvim(快照)添加到更新备选方案中。问题在于,在决定运行哪个程序时,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,它是指向/us

我想将nvim(快照)添加到
更新备选方案中。问题在于,在决定运行哪个程序时,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才能像这样使用它?您必须创建一个启动nvim的脚本,如下所示:

#!/usr/bin/env bash
/usr/bin/snap run nvim ${@}
假设您将其命名为nvim_start.sh。现在,您可以在update alternatives命令中使用此脚本(请记住启用执行标志):


我不确定为什么使用/snap/bin/nvim不起作用,即使从脚本内部调用也是如此。至少解决方法还可以。

谢谢,我一起编写了一个类似的脚本,到目前为止似乎还可以使用,但你的脚本看起来更好,所以我选择D
CUSTOM_NVIM_PATH=/usr/bin/nvim_start.sh
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}"