编辑 crontab 时没有语法突出显示

编辑 crontab 时没有语法突出显示

我试图找出为什么在编辑 crontab 时没有语法突出显示。

我两者都有$EDITOR$VISUAL设置为/usr/bin/vim

> echo $EDITOR
/usr/bin/vim
> echo $VISUAL
/usr/bin/vim

如果我将 crontab 保存到文件并使用 vim 编辑它,则会启用语法突出显示。

> crontab -l > saved_cronab
> /usr/bin/vim saved_crontab

如果我:syntax on在编辑 crotab 时使用,则不会发生任何变化

如何在使用 编辑 crontab 时启用突出显示crontab -e

答案1

vim 不知道你的文件 saving_crontab 是一个 crontab。因此,您不会获得 crontab 的特殊语法突出显示。将文件类型设置为 crontab 对我有用。我用了:

:set ft=crontab

您可以使用以下命令查看文件类型的值:

:set ft?

答案2

您是否导出了这些变量 ( export EDITOR VISUAL)?

答案3

接受的答案恕我直言,解释得很差,所以这里有更多东西可以帮助人们解决这个问题。

我仍然不明白为什么crontab拒绝选择指定的编辑器

sudo update-alternatives --config editor

就我而言:

替代编辑器有 4 个选择(提供 /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

事实上,一切都正确地指向 vim.basic:

#> ll /usr/bin/editor
lrwxrwxrwx 1 root root 24 Oct 20  2014 /usr/bin/editor -> /etc/alternatives/editor

#> ll /etc/alternatives/editor
lrwxrwxrwx 1 root root 18 Jun 20  2016 /etc/alternatives/editor -> /usr/bin/vim.basic

#> ll /usr/bin/vim.basic
-rwxr-xr-x 1 root root 2.4M Nov 24  2016 /usr/bin/vim.basic

#> ll /usr/bin/vim
lrwxrwxrwx 1 root root 21 Oct 20  2014 /usr/bin/vim -> /etc/alternatives/vim

crontab还是不在乎。所以,正如正确指出的那样德斯纳伊德尔,解决方案是通过环境变量明确告诉crontab$EDITOR是什么。

可以export通过.bashrcor来实现.profile,但考虑到这crontab是唯一需要忽略的别名/etc/alternatives/,我更愿意为他创建一个别名,以使他感到需要自定义别名才能工作的耻辱(就像 for 一样dmesg -T)。

alias crontab='EDITOR=vim crontab'

就是这样,已修复✔:)

答案4

这对我有用:

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

添加此选项~/.bash_profile可为当前用户启用此功能。
添加此选项/etc/profile/any_file_you_like可为所有用户启用此功能。

相关内容