当我使用
visudo
时,总是使用nano
编辑器将其打开。如何将编辑器更改为vim?#1 楼
输入sudo update-alternatives --config editor
,您将得到如下所示的文本。
There are 4 choices for the alternative editor (providing /usr/bin/editor).
Selection Path Priority Status
------------------------------------------------------------
* 0 /bin/nano 40 auto mode
1 /bin/ed -100 manual mode
2 /bin/nano 40 manual mode
3 /usr/bin/vim.basic 30 manual mode
4 /usr/bin/vim.tiny 10 manual mode
Press enter to keep the current choice[*], or type selection number: 3
查找
vim.basic
或vim.tiny
选择编号。键入并按Enter。下次打开visudo
时,您的编辑器将为vim
#2 楼
如果您只想让用户默认使用其他编辑器,请在您的.profile
中添加export EDITOR=vim;
(如果使用的Shell与bash)。注销,登录并检查是否设置了变量:您的用户。
正如@EliahKagan(感谢!)在评论中所注意到的,这不适用于
vim
:因为您应该在执行时使用visudo
来调用它[romano:~] % env | grep EDI
EDITOR=vim
sudo
命令将在提升特权之前清除(读取:删除)大多数环境变量---这是一件好事。因此,更改不会渗透到sudo
。要使其正常工作,您必须像这样调用它:sudo visudo
最后,如此处所提示的,您还可以在
visudo
文件的顶部附近添加一行。内容为:sudo EDITOR=vim visudo
警告:修改
/etc/sudoers
配置时,请确保打开带有根外壳的端子(带有sudoers
)。您永远不会知道,并且很容易将您锁定在根目录之外。评论
你有尝试过吗?将EDITOR(或VISUAL)设置为vim并导出后,运行sudo visudo不会(而且不应期望)导致使用vim而不是nano作为编辑器的visudo。默认情况下,sudo为其运行的命令重置大多数环境变量。仅保留少数。 EDITOR和VISUAL不是。因此,在导出EDITOR = vim之后,对于sudo visudo启动的visudo进程,仍将EDITOR设置为vim。 EDITOR = vim sudo visudo做同样的事情,因此也不起作用。 sudo EDITOR = vim visudo可以工作。
– Eliah Kagan
2014年10月20日,9:56
... @ EliahKagan,你显然是对的。我当时想删除答案,但是您添加的信息很有价值,因此我尝试以某种方式保留它。
–罗马诺
2014年10月20日10:06
@EliahKagan ...我知道我的困惑从何而来...看看unix.stackexchange.com/a/4409/52205 ---似乎从前,sudo确实传递了EDITOR变量。
–罗马诺
2014年10月20日上午10:13
@Rmano不是完全“一次”,而是取决于visudo编译了哪些标志以及在sudoers中设置了哪些选项。
–muru
2014年10月20日10:20
它比适配更优雅。
–脑90
15年11月12日在1:23
评论
vim.basic和vim.tiny有什么区别?
–Jared Beck
2015年5月11日15:02
askubuntu.com/questions/483308/…可能会回答您。还要检查此问题askubuntu.com/questions/104138/what-features-does-vim-tiny-have
–dedunumax
2015年5月12日下午4:29
sudo EDITOR = vim如果您不想永久更改配置,可以使用visudo(请参见下面的另一个答案)。
–亚历山大·波兹涅夫(Alexander Pozdneev)
18年2月13日在7:04
该解决方案对于原始问题并不正确,因为仅在Ubuntu / Debian案例中解决了该问题。响应应针对所有(或至少大多数)符合posix的Linux系统,并且至少有一个响应更接近于此目标。
–路易斯·巴斯克斯(Luis Vazquez)
19-09-13在22:14