¿Es posible ejecutar una función o comando en un momento específico?

8

¿Es posible ejecutar una función o comando en un momento específico? Como ejemplo explícito, ¿es posible matar emacs en un momento específico (tiempo determinado por el sistema operativo).

Nombre
fuente
1
Ver también modo medianoche
niñera
Veo que alguien está tomando medidas para prevenir la adicción a emacs :)
biocyberman

Respuestas:

14

Desea utilizar la función run-at-time, descrita en el Capítulo 38.10 del manual de Emacs Lisp. En su caso, algo como esto debería hacer el truco:

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

Si la función a la que desea llamar toma parámetros, puede especificarlos como parámetros adicionales para run-at-time:

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

Tenga en cuenta que los tiempos absolutos se consideran hoy, incluso si están en el pasado, por lo que el primer ejemplo anterior saldrá inmediatamente si es después de las 20:30.

jch
fuente
1
Puse su código en mi archivo .emacs. ¡Mata emacs en el momento dado! Pero cuando reinicio emacs, se elimina inmediatamente. Alguna pista?
Nombre el
1
@Nombre editado para aclarar.
jch
LOL, puede comenzar con el modificador -q para omitir el archivo init que tostará sus emacs hasta la medianoche. Luego cae la zapatilla de vidrio y puede editar nuevamente hasta esa misma hora mañana.
devon