当我使用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.basicvim.tiny选择编号。键入并按Enter。下次打开visudo时,您的编辑器将为vim

评论


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



#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