执行时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
。
有什么线索吗?
答案1
问题不在于它不适用于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
。它显示一个菜单来更改当前关联。
ENVIRONMENT
请参阅man visudo
:
VISUAL Invoked by visudo as the editor to use
EDITOR Used by visudo if VISUAL is not set
答案2
如果你从不打算使用 nano,你也可以直接删除它。然后系统将使用 vi/vim 作为默认设置。
sudo apt-get purge nano
我知道这不是官方答案,但这是我安装 Ubuntu 后的第一个命令之一。
答案3
答案4
使用的问题:
export VISUAL="vim"
export EDITOR="$VISUAL"
这sudo visudo
会清理用户环境变量,以便这些变量在 root 环境中设置。如果您是机器的唯一用户(或者每个人都喜欢 VIM),您也可以始终将这些变量设置为 root 的环境。