当我已经打开emacs时,如何直接在emacs中编辑crontab?


13

我知道我可以设置EDITOR变量并使用emacs编辑我的crontab,但这需要使用以下命令从shell启动该过程

$ crontab -e

我的问题是,如果我已经在emacs中,该如何直接修改crontab?我尝试从那里启动eshell并运行crontab -e,但是终端抱怨:

$ crontab -e
emacs: Terminal type "dumb" is not powerful enough to run Emacs.
It lacks the ability to position the cursor.
If that is not the actual type of terminal you have,
use the Bourne shell command `TERM=... export TERM' (C-shell:
`setenv TERM ...') to specify the correct type.  It may be necessary
to do `unset TERMINFO' (C-shell: `unsetenv TERMINFO') as well.
/usr/bin/crontab: no changes made to crontab

如果在eshell中使用crontab可以正常工作,那将是朝正确方向迈出的一步,但这仍然不是我所希望的。尝试从emacs中的Mx term缓冲区内执行crontab -e也会失败(至少在带有emacs 24.3.1的OpenBSD 5.6上)。在理想情况下,可以使用crontab模式,

MX Crontab

这会启动主要模式,并允许我使用crontab在命令行中执行常规操作,并将其全部绑定到键。我确定有某种方式可以解决这个问题,但是我并没有很多运气。


crontab-modeMELPA中有一个,您尝试过吗?(我没有,所以我不知道它是否有效或是否满足您的要求)。
wvxvw 2015年

用什么来M-x term启动一个不太笨的终端呢?
Nsukami _ 2015年

@wvxvw:是的,我先做了一个Mx列表包,然后找到了该模式,但是描述表明这只是一个突出显示模式,旨在帮助使它起作用的人处理他在rcs下保留的个人资料。
unclejamil

@Nsukami_:可以,但是最终我不是。它使我进入emacs,因此绝对是朝正确方向迈出的一步,而且比离开emacs更好,但是看来crontab的一种好模式是有序的(类似于Mx crontab),它可以拉我的crontab并具有绑定到我通常要做的其他事情的键在命令行使用crontab进行切换。
unclejamil

@Nsukami_:我已经更新了问题,以根据评论中此处的讨论来澄清我要寻找的内容。顺便说一句,谢谢你的建议。
unclejamil

Answers:


20

您可以尝试使用该with-editor软件包:

(defun crontab-e ()
    "Run `crontab -e' in a emacs buffer."
    (interactive)
    (with-editor-async-shell-command "crontab -e"))

它将使用当前的Emacs作为编辑器在子Shell中运行crontab。


哈!很甜 只是拉下with-editor软件包并尝试了一下。奇迹般有效!好的电话。我将等待一天,看看是否有人为crontab制定了全功能模式,如果没有人返回任何内容,我会将此标记为答案。
unclejamil
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.