すでにemacsを開いているときに、emacs内でcrontabを直接編集する方法は?


13

私はEDITOR変数を設定し、emacsでcrontabを編集できることを知っていますが、それはシェルからプロセスを開始する必要があります

$ 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を実行しようとしても失敗します(少なくともOpenBSD 5.6 with emacs 24.3.1で)。理想的なケースでは、crontabモードを使用して、次のことができます。

MX crontab

これによりメジャーモードが起動し、コマンドラインでcrontabを使用して通常の操作を行い、すべてをキーにバインドできるようになりました。私はこのためのモードまたは何かがあると確信していましたが、それを見つけるのにそれほど幸運がありませんでした。


ありますcrontab-modeMELPAで、あなたはそれを試してみたのですか?(私はしなかったので、それが機能するかどうか、またはあなたが望むことをするかどうかわかりません)。
wvxvw

M-x termそれほど愚かな端末を起動するために使用するのはどうですか?
Nsukami _

@wvxvw:ええ、私は最初にMxリストパッケージを実行し、そのモードを見つけましたが、説明は、これが単なる強調表示モードであり、自分の個人的なものを使って作業するのを助けることを意図しています
アンクルジャミル

@Nsukami_:それはうまくいくことができますが、結局私が望んでいるものではありません。それは私をemacsに保持するので、間違いなく正しい方向への一歩であり、emacsを離れるよりも優れていますが、crontabを引っ張って、通常は別のことにバインドされたキーを持つcrontabの適切なモード(Mx crontabのようなもの)のようですコマンドラインでcrontabを使用してスイッチを使用します。
アンクルジャミル

@Nsukami_:コメントでの議論に基づいて、探しているものを明確にするために質問を更新しました。ところで、提案をありがとう。
アンクルジャミル

回答:


20

with-editorパッケージを使用してみてください:

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

現在のEmacsをエディターとして使用して、サブシェルでcrontabを実行します。


ハ!かなり甘い。with-editorパッケージをプルダウンして試してみました。魔法のように機能します!いいね 誰かがcrontabのフルオンモードを開始したかどうかを確認するために1日待機します。何も返されない場合は、これを回答としてマークします。
アンクルジャミル
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.