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).
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.
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.
Jawaban:
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:Jika fungsi yang ingin Anda panggil membutuhkan parameter, Anda dapat menetapkannya sebagai parameter tambahan untuk
run-at-time
: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.
sumber