Est-il possible d'exécuter une fonction ou une commande à un moment précis?


8

Est-il possible d'exécuter une fonction ou une commande à un moment précis? À titre d'exemple explicite, est-il possible de tuer emacs à un moment précis (temps déterminé par le système d'exploitation).


1
Voir aussi minuit-mode
nounou

Je vois que quelqu'un prend des mesures pour prévenir la dépendance à emacs :)
biocyberman

Réponses:


14

Vous souhaitez utiliser la fonction run-at-time, décrite au chapitre 38.10 du manuel Emacs Lisp. Dans votre cas, quelque chose comme ça devrait faire l'affaire:

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

Si la fonction que vous souhaitez appeler prend des paramètres, vous pouvez les spécifier comme paramètres supplémentaires pour run-at-time:

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

Notez que les heures absolues sont considérées comme étant aujourd'hui, même si elles sont dans le passé, donc le premier exemple ci-dessus se terminera immédiatement s'il est après 20h30.


1
J'ai mis votre code dans mon fichier .emacs. Il tue les emacs à un moment donné! Mais quand je redémarre emacs, il est immédiatement tué. Un indice?
Nom du

1
@Name modifié pour clarifier.
jch

LOL, vous pouvez commencer avec le commutateur -q pour contourner le fichier init qui grillera vos emacs jusqu'à minuit. Ensuite, la pantoufle de verre tombe et vous pouvez éditer à nouveau jusqu'à la même heure demain.
devon
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.