จะแก้ไข crontab โดยตรงภายใน emacs ได้อย่างไรเมื่อฉันเปิด emacs ไปแล้ว?


13

ฉันรู้ว่าฉันสามารถตั้งค่าตัวแปร EDITOR และแก้ไข crontab ของฉันด้วย emacs แต่ต้องเริ่มต้นกระบวนการจากเชลล์ด้วย

$ crontab -e

คำถามของฉันคือฉันจะแก้ไข crontab ของฉันโดยตรงได้อย่างไรถ้าฉันอยู่ใน emacs แล้ว? ฉันพยายามเริ่มต้นใช้งาน 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

หากใช้ crontab ใน eshell นั้นจะเป็นขั้นตอนในทิศทางที่ถูกต้อง แต่ก็ยังไม่ตรงตามที่ฉันหวังไว้ ความพยายามในการดำเนินการ crontab -e จากภายใน Mx ระยะบัฟเฟอร์ใน emacs ล้มเหลวเช่นกัน (อย่างน้อยใน OpenBSD 5.6 ด้วย emacs 24.3.1) ในกรณีที่เหมาะจะมีโหมด crontab ที่อนุญาตให้ฉัน

Mx crontab

นั่นเป็นการเปิดโหมดหลักและอนุญาตให้ฉันทำสิ่งปกติที่ฉันทำที่บรรทัดคำสั่งด้วย crontab และให้ทุกอย่างถูกผูกไว้กับกุญแจ ฉันคิดว่าแน่นอนว่าจะมีโหมดหรืออะไรบางอย่างสำหรับเรื่องนี้ แต่ฉันไม่ได้มีโชคมากในการหาหนึ่ง


มีcrontab-modeใน MELPA คุณลองไหม (ฉันไม่ได้ดังนั้นฉันไม่รู้ว่ามันใช้งานได้หรือทำในสิ่งที่คุณต้องการ)
wvxvw

สิ่งที่เกี่ยวกับการใช้M-x termสำหรับการเปิดตัว terminal ไม่ได้เป็นใบ้?
Nsukami _

@wvxvw: ใช่ฉันทำรายการแพ็คเกจ Mx ก่อนและพบว่าโหมด แต่คำอธิบายระบุว่านี่เป็นเพียงโหมดไฮไลต์ที่มีไว้เพื่อช่วยให้คนที่ทำงานกับสิ่งที่เขาเก็บไว้ภายใต้ rcs
ลุงจามิล

@Nsukami_: นั่นสามารถทำงานได้ แต่มันไม่ใช่สิ่งที่ฉันตามมาในตอนท้าย มันทำให้ฉันอยู่ใน emacs ดังนั้นจึงเป็นขั้นตอนในทิศทางที่ถูกต้องและดีกว่าปล่อย emacs แต่ดูเหมือนว่าโหมดที่ดีสำหรับ crontab นั้นเป็นไปตามลำดับ (คล้ายกับ Mx crontab) ที่ดึง crontab ของฉันและมีกุญแจที่ผูกกับสิ่งต่าง ๆ ที่ฉันมักจะทำ ด้วยสวิตช์ที่บรรทัดคำสั่งด้วย crontab
ลุงจามิล

@Nsukami_: ฉันได้อัปเดตคำถามเพื่อชี้แจงสิ่งที่ฉันกำลังมองหาตามการสนทนาของเราที่นี่ในความคิดเห็น BTW ขอบคุณสำหรับคำแนะนำ
ลุงจามิล

คำตอบ:


20

คุณสามารถลองใช้with-editorแพ็คเกจนี้ได้:

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

มันจะรัน crontab ใน subshell โดยใช้ Emacs ปัจจุบันเป็นตัวแก้ไข


ฮา! น่ารักน่ารัก เพิ่งดึงแพ็คเกจที่มีเอดิเตอร์และลองใช้ ทำงานเหมือนจับใจ! โทรดีนะ ฉันจะรอสักครู่เพื่อดูว่ามีใคร cranked ออกเต็มรูปแบบในโหมดสำหรับ crontab และถ้าไม่มีใครกลับมาพร้อมกับสิ่งใดฉันจะทำเครื่องหมายสิ่งนี้เป็นคำตอบ
ลุงจามิล
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.