如何指定编辑器打开crontab文件?“ export EDITOR = vi”不起作用


103

我正在使用Red Hat Enterprise Linux 5,并且想要设置vim编辑器来编辑crontab文件。

如果我运行echo $EDITOR,我会得到vim。但是当我运行时 crontab -e,我得到了不同的编辑器。

Answers:


170

您的VISUAL环境变量很可能设置为其他值。尝试:

export VISUAL=vi

6
设置变量export VISUAL=vimsetenv VISUAL "vim"对于tcsh shell)非常有效!
2011年

9
@ lwpro2:如果VISUAL未设置,EDITOR则使用变量。但是VISUAL优先于EDITOR
2013年

如果crontab由多个用户和一个用户管理,则建议在子外壳中执行此操作,因此默认编辑器将保留在原位。
ThomasBöhm'17

有什么想法为什么用vi而不是nano打开文件时文件会有所不同?
dardub '17

76

引用此人的话:

-e选项用于使用VISUAL或EDITOR环境变量指定的编辑器来编辑当前crontab。

通常,如果您crontab -e从X 运行,则已经VISUAL设置;这就是所使用的。试试这个:

VISUAL=vi crontab -e

它只对我有用:)


感谢您的解释,事实上,我从X上运行我的终端
antonjs

1
如果您使用sudo运行crontab -e,则是最佳选择:)sudo VISUAL=vi crontab -e
MediaVince '16

42

如果上述方法不起作用(因为它们在我的Ubuntu 13.04安装中不起作用),请尝试:

有多种替代方法:

1)运行选择编辑器

select-editor

2)手动编辑文件:~/.selected_editor指定首选编辑器。使用此选项,您可以指定编辑器参数。

# Generated by /usr/bin/select-editor
SELECTED_EDITOR="/usr/bin/emacs -nw"

3)您可以使用以下命令即时指定命令行:

env VISUAL="emacs -nw" crontab -e

1
nano第一次打开crontab时,我错误地将默认编辑器设置为。然后,我不得不使用sudo select-editor它来使其工作。小费(如果select-editor不起作用)
244

2
您不应该在个人配置中使用“ sudo”。它可能会破坏事情,迫使您在正常的计算机使用中保持较高的运行状态。sudo(提升的命令)用于在您的个人区域(〜用户区域)之外使用系统范围的功能。
LD詹姆斯

5

我认为您可能需要使用完整路径:

export EDITOR=/usr/bin/vim

3
陷阱是VISUAL首先检查的。因此,像您这样的完美建议可以很好地用于SSH会话,并且在台式机上神秘地失败。
9000

我尝试按说明分配时进行导出,但是没有用。通过先分配然后将其导出对我有用,就像这样:EDITOR = / usr / bin / vi; 导出编辑器。在此处使用SSH下的SunOS。
艾伦(Alan)

5

您可以使用以下命令在VIM编辑器中将其打开。

export VISUAL=vim; crontab -e

注意:请确保服务器上已安装VIM编辑器。



2

它对我不起作用。我使用sudo运行crontab,所以我切换到root,做了以上建议,crontab会在vim中打开,但仍然不会从我的用户帐户中打开。最终,我sudo select-editor从用户帐户中退出,然后成功了。


1
如果必须运行sudo来配置用户环境,则表示您应该解决的问题。您已经在个人空间上运行sudo,并且丢失了对您应拥有的文件的许可。您可以通过运行来检查空间find ~/ -mount ! -user $(whoami)。您可以通过运行来解决问题sudo chown -R $(whoami):$(whoami) ~/
LD詹姆斯

@LDJames你说得对,谢谢。事实证明,root用户仅拥有.select_editor文件。
felwithe

2

这为我工作:

EDITOR="/usr/bin/vim"
export EDITOR

将此添加到〜/ .bash_profile或〜/ .bashrc以为当前用户启用此功能。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.