É possível executar uma função ou comando em um horário específico?

8

É possível executar uma função ou comando em um horário específico? Como um exemplo explícito, é possível matar o emacs em um horário específico (horário determinado pelo sistema operacional).

Nome
fonte
1
Veja também midnight-mode
babá
Eu vejo alguém está tomando medida difícil de evitar emacs vício :)
biocyberman

Respostas:

14

Você deseja usar a função run-at-time, descrita no capítulo 38.10 do manual Emacs Lisp. No seu caso, algo como isto deve funcionar:

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

Se a função que você deseja chamar aceita parâmetros, você pode especificá-los como parâmetros adicionais para run-at-time:

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

Observe que os tempos absolutos são considerados hoje, mesmo que existam no passado; portanto, o primeiro exemplo acima será encerrado imediatamente se for depois das 20:30.

jch
fonte
1
Coloquei seu código no meu arquivo .emacs. Mata emacs em um determinado momento! Mas quando eu reinicio o emacs, ele é imediatamente morto. Alguma dica?
Nome
1
@Name editado para esclarecer.
JCH
LOL, você pode começar com a opção -q para ignorar o arquivo init que estará brindando seu emacs até meia-noite. Em seguida, o sapatinho de cristal cai e você pode editar novamente até o mesmo horário amanhã.
Devon #