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.