在sudo visudo时更改默认编辑器
在做sudo visudo
,默认编辑器是nano
。
我想将其更改为vi
或vim
。
我已经将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,设置VISUAL
和EDITOR
:
export VISUAL="vim" export EDITOR="$VISUAL"
或更多POSIX正确
VISUAL="vim" ; export VISUAL EDITOR="$VISUAL" ; export EDITOR
我假设nano
是一个或两个变量的值。
为了实际使用visudo中的编辑器,我们需要处理sudo
不能正常保存环境变量。 选项-E
改变了这一点。
sudo -E visudo
如果没有-E
,你最终会再次使用默认的nano
在名称为*.desktop
或mime*
文件之前使用的两个变量甚至存在。
(令人印象深刻的是:它们实际上被用作通用标准。)
在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后我的第一个命令之一。