我使用 neovim。我更改了 .zshrc,以便vim
在终端中输入时打开 nvim。
我的配置来自我的 Mac,在那里我很少使用 Sudo(现在我使用 Ubuntu,我一直使用 sudo)。
当我这样做时sudo vim {anything}
,Vi 打开,或者可能是 Vim,但不是 neovim。
在我的 zshrc 中我有:
alias vim="nvim"
EXPORT EDITOR="nvim"
当我使用时如何激活 nvim 来打开文件sudo
?
答案1
之所以sudo vim
打开,vim
是因为vim
您的系统设置为通过 Debian 替代系统打开vim.basic
。您使用别名为您的个人用户覆盖了此设置,但sudo
使用的不是您的用户配置,而是用户的配置root
。
您不需要为 root 用户设置别名,而是最好设置系统vim
指向nvim
:
执行命令
sudo update-alternatives --config vim
选择选项列表nvim
(/usr/bin/nvim
):
There are 2 choices for the alternative vim (providing /usr/bin/vim).
Selection Path Priority Status
------------------------------------------------------------
* 0 /usr/bin/vim.basic 30 auto mode
1 /usr/bin/nvim 30 manual mode
2 /usr/bin/vim.basic 30 manual mode
Press <enter> to keep the current choice[*], or type selection number:
在这种情况下,我会输入2
。
此后,您可以删除别名定义。
答案2
使用 时sudo
,您将以不同的用户 (root) 启动另一个 shell 会话。在前一个 shell 中定义的别名和环境变量不会传递到第二个 shell。
您可以使用传递环境变量sudo -E
(或者,更好的方法是指定要传递的特定变量而不是整个环境:)sudo --preserve-env=EDITOR
,但似乎没有办法传递别名。您必须vim
在 root 的.zshrc
文件中再次定义别名。
答案3
不要使用sudo vim {anything}
,而要考虑使用sudoedit {anything}
或sudo -e {anything}
sudo
然后将使用用户EDITOR
或环境变量中定义的编辑器。如果您想要一个专门用于 的其他编辑器,VISUAL
也可以定义一个变量。SUDO_EDITOR
sudo