i는 23.3 실행하고 너무 많은 경우는 여전히 어디 내장 된 '솔루션'및 메시지 기능 나타나서에 orginal 한 defadvice t는 그것을 자르지 않았으므로 목록/토글/타이머 설정에서 코드를 래핑하고 멋지게 작동합니다 - 디버깅 할 때 더 이상 좌절감을 느끼지 마십시오!
는
(toggle-buffer-tail "*Messages*" "on")
그것이 사람에게 유용 ..hope .. 일반의 I는 정말 그것을 사용하지만, 그래서 어떤 버퍼에서 작동합니다.
;alist of 'buffer-name/timer' items
(defvar buffer-tail-alist nil)
(defun buffer-tail (name)
"follow buffer tails"
(cond ((or (equal (buffer-name (current-buffer)) name)
(string-match "^ \\*Minibuf.*?\\*$" (buffer-name (current-buffer)))))
((get-buffer name)
(with-current-buffer (get-buffer name)
(goto-char (point-max))
(let ((windows (get-buffer-window-list (current-buffer) nil t)))
(while windows (set-window-point (car windows) (point-max))
(with-selected-window (car windows) (recenter -3)) (setq windows (cdr windows))))))))
(defun toggle-buffer-tail (name &optional force)
"toggle tailing of buffer NAME. when called non-interactively, a FORCE arg of 'on' or 'off' can be used to to ensure a given state for buffer NAME"
(interactive (list (cond ((if name name) (read-from-minibuffer
(concat "buffer name to tail"
(if buffer-tail-alist (concat " (" (caar buffer-tail-alist) ")") "") ": ")
(if buffer-tail-alist (caar buffer-tail-alist)) nil nil
(mapcar '(lambda (x) (car x)) buffer-tail-alist)
(if buffer-tail-alist (caar buffer-tail-alist)))) nil)))
(let ((toggle (cond (force force) ((assoc name buffer-tail-alist) "off") (t "on"))))
(if (not (or (equal toggle "on") (equal toggle "off")))
(error "invalid 'force' arg. required 'on'/'off'")
(progn
(while (assoc name buffer-tail-alist)
(cancel-timer (cdr (assoc name buffer-tail-alist)))
(setq buffer-tail-alist (remove* name buffer-tail-alist :key 'car :test 'equal)))
(if (equal toggle "on")
(add-to-list 'buffer-tail-alist (cons name (run-at-time t 1 'buffer-tail name))))
(message "toggled 'tail buffer' for '%s' %s" name toggle)))))
편집 : 변경된 기능은 그냥 버퍼 M->의 끝 부분에 포인트를 넣어 창
통해 수정합니다. 나는 너에게 충분하지 않니? –
예, Emacs 23.2.1 이상에서 \ * Messages \ *는 EOF에서 수동으로 포인트를 이동시키지 않는 한 기본적으로 꼬리를 가집니다 (다시 꼬리 끌기 동작을 다시 시작 함). 'auto-revert-tail-mode'는 분명히 다른 것을 수행하는 것으로 보이지 않습니다. – phils