Я багато залежую від *Messages*
буфера, але записи не позначаються часом.
Як можна додати часову позначку до кожного запису в буфері повідомлень Emacs ?
Так що щось подібне:
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]
стане щось подібне:
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]
Я шукав EmacsWiki, Reddit і emacs.sx, звичайно, безрезультатно.
Мені відомо command-log-mode
, які можна налаштувати для реєстрації за допомогою часових позначок, але це корисно лише для інтерактивних команд, а не для всіх повідомлень, включаючи "системні" Emacs.
Натомість кожне повідомлення, зареєстроване в буфері повідомлень, має бути відмічене часом.
Як можна додати часову позначку до кожного запису в буфері повідомлень Emacs , незалежно від його джерела?
after-change-functions
(в буфері повідомлень) для реалізації цього. Щоразу, коли щось вставляється в кінці буфера, приставте до нього часову позначку.
message
Команда реалізована в C і , ймовірно , має прямі абонент, так що ви не будете в змозі гарантувати , що кожне зафіксоване повідомлення отримує позначку часу без створення Emacs самостійно. Однак, можливо, ви зможете порадитиmessage
команді ввести позначку часу, коли вона викликається від Elisp. Потрібна певна обережність:message
його можна викликати без аргументів, порожнього рядка формату тощо. Ви також хочете уникнути рекурсивного циклу, якщо ваша порада щодо часових позначок сама подзвонитьmessage
у якийсь шлях коду.