sudo vim 和 vim 打开不同的编辑器

sudo vim 和 vim 打开不同的编辑器

我刚刚安装完 Fedora 36,正在安装我常用的软件。相对于 vim,我个人更喜欢 nvim,但我习惯了用 vim 输入;所以,我只是alias vim='nvim'在 中使用别名.bashrc

使用vim直接使用 nvim 并使用init.vim;但是, usingsudo vim似乎没有使用我编写的任何映射。 (我init.vim.vimrc链接ln -s .config/nvim/init.vim .vimrc)。我读到 sudo 使用除 之外的另一个文件.bashrc,但我不想到处创建别名。

找到了一些建议使用sudo update-alternatives --config vim并从“列表”中选择 nvim 的答案,但运行命令时我没有得到任何输出。它只是给了我一条新的终端线。如何sudo update-alternatives --config vim返回“列表”?或者除了 之外还有更好的方法吗update-alternatives

答案1

据我所知, sudo 会更改您的用户 ID,因此当您使用 sudo 调用某些内容时,您专门为普通用户所做的所有配置都不适用(这意味着如果您有 .vimrc ,那么当您使用 sudo 调用 vim 时,它将不适用) 。除此之外,据我所知 sudo 无法读取您为 bash 创建的“别名”,这意味着如果您输入alias l=ls;sudo lsudo 将不知道该命令的l含义。

update-alternatives 是一个有用的工具,它创建和处理二进制文件的链接,因此,如果您的系统上有不同版本的 vim,则可以使用 update-alternatives 来更改调用 vim 时调用的版本。可以使用您尝试使用该标志的命令来配置替代方案--config,但只能在使用该标志创建它之后进行--install

这是一个介绍如何为 python 执行此操作的教程:关联

但是,我不确定这将如何帮助您解决问题,但可能是,通过创建替代方案,您可以允许 sudo 找到您想要的程序。

我不确定这是否可取,可能不是,但解决您的问题的一个简单而肮脏的解决方案是重命名二进制文件或创建一个名为 vim 的 nvim 二进制文件的链接。这样,每个环境在调用它时都会使用这个二进制文件。但我认为学习和使用更新替代方案是更干净、更耐用的方式。

就我个人而言,我在使用 sudo 时会采取懒惰的方式并输入正确的二进制名称。我有一个 v=vim 的别名,但是当使用 sudo 时,我可能正在做一些严肃的事情,所以我也可以精确地表达我想要的,但我可以理解你是否想在任何地方使用你的别名。

相关内容