在sudo visudo时更改默认编辑器

在做sudo visudo ,默认编辑器是nano
我想将其更改为vivim

我已经将vim作为默认编辑器,并使用它作为gedit的替代来打开php,.txt,.c和.h文件,将vim.desktop文件放在~/.local/share/applications/并正确编辑~/.local/share/applications/mimeapps.list/etc/gnome/defaults.list 。 但显然这不适用于nano

任何线索?

问题不在于它不适用于nano ,它不适用于shell:

只需设置VISUAL环境变量:

 export VISUAL=vim 

添加这个〜/ .bashrc以使其永久化。

因为你似乎一般使用vim,设置VISUALEDITOR

 export VISUAL="vim" export EDITOR="$VISUAL" 

或更多POSIX正确

 VISUAL="vim" ; export VISUAL EDITOR="$VISUAL" ; export EDITOR 

我假设nano是一个或两个变量的值。

为了实际使用visudo中的编辑器,我们需要处理sudo不能正常保存环境变量。 选项-E改变了这一点。

 sudo -E visudo 

如果没有-E ,你最终会再次使用默认的nano

在名称为*.desktopmime*文件之前使用的两个变量甚至存在。
(令人印象深刻的是:它们实际上被用作通用标准。)
在Ubuntu中,系统默认似乎是使用sudo update-alternatives --config editor 。 它显示了一个用于更改当前关联的菜单。

请参阅man visudo ENVIRONMENT部分:

  VISUAL Invoked by visudo as the editor to use EDITOR Used by visudo if VISUAL is not set 

如本回答所述 ,添加

 Defaults editor=/path/to/editor 

到sudoers文件 。

注意:这仅在正在编辑的文件包含Defaults editor=/path/to/editor行或包含包含它的文件时才有效。

例如: visudo -f /etc/sudoers.d/my_sudoers_extension将默认为Nano。

如果您从未计划使用nano,您也可以简单地将其删除。 然后系统将使用vi / vim作为默认值。

 sudo apt-get purge nano 

我知道这不是官方的答案,但它是安装Ubuntu后我的第一个命令之一。