Làm cách nào để chỉnh sửa crontab trực tiếp trong emacs khi tôi đã mở emacs?


13

Tôi biết tôi có thể đặt biến EDITOR và chỉnh sửa crontab của mình bằng emacs nhưng điều đó đòi hỏi phải bắt đầu quá trình từ trình bao với

$ crontab -e

Câu hỏi của tôi là làm thế nào tôi có thể trực tiếp sửa đổi crontab của mình nếu tôi đã ở trong emacs? Tôi đã thử chạy bắt đầu từ eshell và chạy crontab -e từ đó nhưng thiết bị đầu cuối phàn nàn:

$ 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

Nếu sử dụng crontab trong eshell hoạt động thì đó sẽ là một bước đi đúng hướng nhưng nó vẫn không chính xác như những gì tôi đã hy vọng. Nỗ lực thực thi crontab -e từ trong bộ đệm hạn Mx trong emacs cũng không thành công (ít nhất là trên OpenBSD 5.6 với emacs 24.3.1). Trong trường hợp lý tưởng, sẽ có chế độ crontab cho phép tôi

Mx crontab

điều đó kích hoạt một chế độ chính và cho phép tôi làm những việc thông thường tôi làm ở dòng lệnh với crontab và tất cả đều bị ràng buộc với các phím. Tôi đoán chắc chắn sẽ có một chế độ hoặc thứ gì đó cho việc này nhưng tôi đã không gặp nhiều may mắn khi tìm một chế độ.


Có một crontab-modeMELPA, bạn đã thử chưa? (Tôi đã không làm vậy, vì vậy tôi không biết liệu nó có hoạt động hay liệu nó có làm những gì bạn muốn không).
wvxvw 17/03/2015

Điều gì về việc sử dụng M-x termđể khởi chạy một thiết bị đầu cuối không quá ngu ngốc?
Nsukami _ 17/03/2015

@wvxvw: Vâng, trước tiên tôi đã thực hiện một gói danh sách Mx và thấy chế độ đó nhưng mô tả chỉ ra rằng đây chỉ là một chế độ nổi bật nhằm giúp anh chàng làm cho nó hoạt động với những thứ cá nhân mà anh ta giữ trong rcs.
chújamil 17/03/2015

@Nsukami_: Điều đó có thể hoạt động nhưng cuối cùng nó không thực sự là thứ tôi muốn. Nó giữ tôi trong các emacs vì vậy nó chắc chắn là một bước đi đúng hướng và tốt hơn là để lại các emacs nhưng có vẻ như một chế độ tốt cho crontab theo thứ tự (một cái gì đó như Mx crontab) kéo crontab của tôi và có các phím bị ràng buộc với những điều khác nhau tôi thường làm với các công tắc tại dòng lệnh với crontab.
chújamil 17/03/2015

@Nsukami_: Tôi đã cập nhật câu hỏi để làm rõ những gì tôi đang tìm kiếm dựa trên cuộc thảo luận của chúng tôi ở đây trong các bình luận. BTW, cảm ơn bạn đã gợi ý.
chújamil 17/03/2015

Câu trả lời:


20

Bạn có thể thử sử dụng with-editorgói:

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

nó sẽ chạy crontab trong một subshell, sử dụng Emacs hiện tại làm trình chỉnh sửa.


Hà! Khá ngọt ngào. Chỉ cần kéo gói with-Editor xuống và dùng thử. Hoạt động như một lá bùa! Cuộc gọi tốt đẹp. Tôi sẽ đợi một ngày để xem ai đó đã bật chế độ đầy đủ cho crontab và nếu không có ai quay lại với bất cứ điều gì tôi sẽ đánh dấu đây là câu trả lời.
chújamil 17/03/2015
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.