Apakah mungkin untuk menjalankan fungsi atau perintah pada waktu tertentu?


8

Apakah mungkin untuk menjalankan fungsi atau perintah pada waktu tertentu? Sebagai contoh eksplisit, apakah mungkin untuk membunuh emacs pada waktu tertentu (waktu ditentukan oleh OS).


1

Saya melihat seseorang mengambil tindakan keras untuk mencegah kecanduan emacs :)
— biocyberman

Jawaban:


14

Anda ingin menggunakan fungsi run-at-time, yang dijelaskan dalam Bab 38.10 dari manual Emacs Lisp. Dalam kasus Anda, sesuatu seperti ini harus melakukan trik:

(run-at-time "20:30" nil #'kill-emacs)

Jika fungsi yang ingin Anda panggil membutuhkan parameter, Anda dapat menetapkannya sebagai parameter tambahan untuk run-at-time:

(run-at-time "5 sec" nil #'message "Tempus volat, hora fugit.")

Perhatikan bahwa waktu absolut dianggap hari ini, bahkan jika itu di masa lalu, jadi contoh pertama di atas akan segera keluar jika setelah 20:30.


1
Saya memasukkan kode Anda dalam file .emacs saya. Itu membunuh emacs pada waktu tertentu! Tetapi ketika saya me-restart emacs, ia langsung terbunuh. Ada petunjuk?
— Nama

1
@Nama diedit untuk memperjelas.
— jch

LOL, Anda bisa mulai dengan saklar -q untuk mem-bypass file init yang akan memanggang emacs Anda sampai tengah malam. Kemudian sepatu kaca jatuh dan Anda dapat mengedit lagi sampai waktu yang sama besok.
— devon
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.