如何将 Sublime 设置为 crontab 的默认文本编辑器?
我定期编写 cron 作业,因此我希望能够使用 sublime 而不是 Nano 来编辑 crontab -e。
我已经开始为 Sublime 创建一个 .desktop 文件。
我也尝试过从终端使用选择编辑器,但它没有显示 Sublime 作为选项。
Ubuntu 15.10
答案1
这可能是由于缺少-w
/--wait
标志,导致命令 ( subl
) 仅退出后您关闭了文件(本例中为临时 cron 文件)。如果没有它,“cron”会认为您在命令退出时立即完成编辑,并且任何更改都只会保留在临时文件中,没有任何意义。
因此,一个解决方案是:
创建一个新文件sublime-wait
:
#!/bin/sh
subl -w $*
添加到您的~/.bashrc
或~/.profile
:
export EDITOR='/path/to/sublime-wait'
答案2
editor
选牌顺序cron
如下,第一个选牌者获胜:
VISUAL
环境变量EDITOR
环境变量/usr/bin/editor
因此将其设置VISUAL
为 sublime 的路径,例如:
export VISUAL=/usr/bin/subl
将其添加到您的~/.bashrc
永久任务中。
只需运行一次,发送VISUAL
到crontab
的环境:
VISUAL=/usr/bin/subl crontab -e
答案3
以上述方式之一设置默认编辑器确实有效,例如编辑 .bashrc 文件,导出变量 EDITOR 和 VISUAL。但是 - 至少在我的环境中 - crontab -e 不会等待编辑器关闭更新的文件并终止并显示“未进行修改”。添加
export EDITOR="xed -w"
export VISUAL="xed -w"
解决了问题。
答案4
谢谢@thomas-jensen 回答,我想建议一个小的修改,以避免在没有 GUI 可用时出现麻烦,并应用所建议的内容这里:
#!/bin/sh
if [ x$DISPLAY != x ] ; then
# GUI Enabled
/opt/sublime_text/sublime_text -w $*
else
vi $*
fi