Я очень зависим от *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
какой-либо путь к коду.