Como editar o crontab diretamente no emacs quando eu já tenho o emacs aberto?

13

Eu sei que posso definir a variável EDITOR e editar meu crontab com o emacs, mas isso requer iniciar o processo a partir de um shell com

$ crontab -e

Minha pergunta é como posso modificar diretamente meu crontab se já estiver dentro do emacs? Eu tentei iniciar o eshell e executar o crontab -e a partir daí, mas o terminal reclama:

$ 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

Se o uso do crontab no eshell funcionasse, seria um passo na direção certa, mas ainda não é exatamente o que eu estava esperando. As tentativas de executar o crontab -e de um buffer de termo Mx no emacs também falham (pelo menos no OpenBSD 5.6 com o emacs 24.3.1). No caso ideal, haveria um modo crontab que me permitisse

Mx crontab

que aciona um modo principal e me permite fazer as coisas usuais que faço na linha de comando com o crontab e vincular tudo às chaves. Achei que haveria um modo ou algo assim, mas não tive muita sorte em localizar um.

tiojamil
fonte
Há um crontab-modeno MELPA, você experimentou? (Eu não fiz, então não sei se funciona ou se faz o que você deseja).
Wdxvw 17/03/2015
Que tal usar M-x termpara lançar um terminal não tão burro?
Nsukami _
@wvxvw: Sim, eu fiz primeiro um pacote de listas do Mx e encontrei esse modo, mas a descrição indica que este é apenas um modo de destaque que visa ajudar o cara que fez o trabalho com suas coisas pessoais que ele mantém sob os rcs.
precisa saber é o seguinte
@Nsukami_: Isso pode funcionar, mas não é exatamente o que estou procurando no final. Isso me mantém no emacs, por isso é definitivamente um passo na direção certa e melhor do que deixar o emacs, mas parece que está em um bom modo de crontab (algo como Mx crontab) que puxa meu crontab e tem chaves ligadas a coisas diferentes que eu costumo fazer com opções na linha de comando com o crontab.
Unclejamil 17/03/2015
@Nsukami_: Atualizei a pergunta para esclarecer o que estou procurando com base em nossa discussão aqui nos comentários. BTW, obrigado pela sugestão.
Unclejamil 17/03/2015

Respostas:

20

Você pode tentar usar o with-editorpacote:

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

ele rodará o crontab em uma sub-camada, usando o Emacs atual como editor.

Rémi
fonte
Ha! Muito doce. Simplesmente baixei o pacote with-editor e tentei. Funciona como um encanto! Boa ligação. Vou esperar um dia para ver se alguém ativou o modo completo do crontab e se ninguém voltar com nada, vou marcar isso como resposta.
Unclejamil 17/03/2015