Dipendo molto dal *Messages*
buffer, ma le voci non sono timestamp.
Come si può aggiungere un timestamp a ciascuna voce nel buffer dei messaggi di Emacs ?
In modo che qualcosa del genere:
Loading /Users/gsl/lisp.d/init.el (source)...
No outline structure detected
For information about GNU Emacs and the GNU system, type C-h C-a.
Loading /Users/gsl/lisp.d/var/recentf...done
Error running timer: (wrong-number-of-arguments (lambda nil (setq gc-cons-threshold (* 64 1024 1024)) (message "WARNING: gc-cons-threshold restored to %S")) 1)
[yas] Prepared just-in-time loading of snippets successfully.
M-] is undefined
CHILDREN [2 times]
‘show-all’ is an obsolete command (as of 25.1); use ‘outline-show-all’ instead.
Invalid face reference: nil [33 times]
Auto-saving...done
Saving file /Users/gsl/lisp.d/init.el...
Wrote /Users/gsl/lisp.d/init.el
mwheel-scroll: Beginning of buffer [5 times]
Mark set
previous-line: Beginning of buffer [10 times]
Quit [4 times]
diventerà qualcosa del genere:
2017-02-14-18:50:01 Loading /Users/gsl/lisp.d/init.el (source)...
2017-02-14-18:50:02 No outline structure detected
2017-02-14-18:50:03 For information about GNU Emacs and the GNU system, type C-h C-a.
2017-02-14-18:50:05 Loading /Users/gsl/lisp.d/var/recentf...done
2017-02-14-18:50:10 Error running timer: (wrong-number-of-arguments (lambda nil (setq gc-cons-threshold (* 64 1024 1024)) (message "WARNING: gc-cons-threshold restored to %S")) 1)
2017-02-14-18:50:12 [yas] Prepared just-in-time loading of snippets successfully.
2017-02-14-18:50:40 M-] is undefined
2017-02-14-18:50:41 CHILDREN [2 times]
2017-02-14-18:50:00 ‘show-all’ is an obsolete command (as of 25.1); use ‘outline-show-all’ instead.
2017-02-14-18:50:01 Invalid face reference: nil [33 times]
2017-02-14-18:51:01 Auto-saving...done
2017-02-14-18:51:03 Saving file /Users/gsl/lisp.d/init.el...
2017-02-14-18:51:06 Wrote /Users/gsl/lisp.d/init.el
2017-02-14-18:51:09 mwheel-scroll: Beginning of buffer [5 times]
2017-02-14-18:51:11 Mark set
2017-02-14-18:51:21 previous-line: Beginning of buffer [10 times]
Ho cercato su EmacsWiki, Reddit ed emacs.sx ovviamente, senza risultati.
Sono a conoscenza command-log-mode
, che può essere regolato per accedere con i timestamp, ma è utile solo per i comandi interattivi, non tutti i messaggi, compresi quelli di "sistema" di Emacs.
Invece, ogni messaggio registrato nel buffer Messaggi deve essere marcato con il timestamp.
Come si può aggiungere un timestamp a ciascuna voce nel buffer dei messaggi di Emacs , indipendentemente dalla sua origine?
after-change-functions
(nel buffer dei messaggi) per implementarlo. Ogni volta che qualcosa viene inserito alla fine del buffer, aggiungere un codice temporale ad esso.
message
comando è implementato in C e probabilmente ha i chiamanti diretti, quindi non sarai in grado di assicurarti che ogni messaggio registrato ottenga un timestamp senza creare Emacs. Detto questo, potresti essere in grado di consigliare ilmessage
comando di introdurre un timestamp quando viene chiamato da Elisp. È necessaria una certa cautela:message
può essere chiamato senza argomenti, una stringa di formato vuota, ecc. Si desidera anche evitare un ciclo ricorsivo nel caso in cui il proprio avviso di data e ora richiamimessage
un percorso di codice.