Bagaimana cara mengedit crontab langsung di dalam emacs ketika saya sudah membuka emacs?

13

Saya tahu saya bisa mengatur variabel EDITOR dan mengedit crontab saya dengan emacs tapi itu mengharuskan memulai proses dari shell dengan

$ crontab -e

Pertanyaan saya adalah bagaimana saya bisa langsung memodifikasi crontab saya jika saya sudah di dalam emacs? Saya mencoba menjalankan start up eshell dan menjalankan crontab -e dari sana tetapi terminal mengeluh:

$ 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

Jika menggunakan crontab di eshell bekerja itu akan menjadi langkah ke arah yang benar tetapi masih tidak persis apa yang saya harapkan. Upaya untuk mengeksekusi crontab -e dari dalam buffer jangka Mx di emacs juga gagal (setidaknya pada OpenBSD 5.6 dengan emacs 24.3.1). Dalam kasus yang ideal, akan ada mode crontab yang memungkinkan saya

Mx crontab

yang menjalankan mode utama dan memungkinkan saya untuk melakukan hal-hal yang biasa saya lakukan di baris perintah dengan crontab dan semuanya terikat pada kunci. Saya pikir pasti akan ada mode atau sesuatu untuk ini, tetapi saya belum beruntung menemukan satu.

Uncjamil
sumber
Ada crontab-modedalam MELPA, apakah Anda mencobanya? (Saya tidak, jadi saya tidak tahu apakah itu berfungsi atau apakah ia melakukan apa yang Anda inginkan).
wvxvw
Bagaimana dengan menggunakan M-x termuntuk meluncurkan terminal yang tidak terlalu bodoh?
Nsukami _
@ wvxvw: Ya saya melakukan daftar-paket Mx pertama dan menemukan mode itu tetapi deskripsi menunjukkan bahwa ini hanya mode penyorotan yang dimaksudkan untuk membantu orang yang membuatnya bekerja dengan barang-barang pribadinya ia tetap di bawah rcs.
unclejamil
@Nsukami_: Itu bisa berhasil, tapi pada akhirnya tidak seperti yang saya kejar. Itu membuat saya tetap di emacs jadi pasti langkah ke arah yang benar dan lebih baik daripada meninggalkan emacs tapi sepertinya mode yang baik untuk crontab adalah dalam urutan (sesuatu seperti Mx crontab) yang menarik crontab saya dan memiliki kunci yang terikat pada hal-hal yang berbeda yang biasanya saya lakukan dengan switch di baris perintah dengan crontab.
unclejamil
@Nsukami_: Saya telah memperbarui pertanyaan untuk memperjelas apa yang saya cari berdasarkan diskusi kami di komentar ini. BTW, terima kasih atas sarannya.
unclejamil

Jawaban:

20

Anda dapat mencoba menggunakan with-editorpaket:

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

itu akan menjalankan crontab dalam sebuah subkulit, menggunakan Emacs saat ini sebagai editor.

Resi
sumber
Ha! Manis sekali. Baru saja mencabut paket with-editor dan mencobanya. Bekerja seperti pesona! Panggilan yang bagus. Saya akan menunggu satu hari untuk melihat apakah seseorang telah mengaktifkan mode penuh untuk crontab dan jika tidak ada yang kembali dengan apa pun saya akan menandai ini sebagai jawabannya.
unclejamil