1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2025-12-15 10:30:25 -08:00

Add a new variable to not recenter term on all input

* lisp/term.el (term-scroll-snap-to-bottom): New variable (bug#15744).
* lisp/term.el (term-emulate-terminal): Use it.
This commit is contained in:
Ryan Crum 2020-08-13 13:02:17 +02:00 committed by Lars Ingebrigtsen
parent 53720a9bde
commit c84d3c1638
2 changed files with 20 additions and 3 deletions

View file

@ -780,6 +780,12 @@ digits.
** Miscellaneous
---
*** New variable 'term-scroll-snap-to-bottom'
term will, by default, recenter the buffer so that the prompt on the
final line in the window. Setting this new variable to nil inhibits
this behavior.
*** The new library hierarchy.el has been added.
It's a library to create, query, navigate and display hierarchy
structures.

View file

@ -501,6 +501,13 @@ This variable is buffer-local."
:type 'boolean
:group 'term)
(defcustom term-scroll-snap-to-bottom t
"Control whether to keep the prompt at the bottom of the window.
If non-nil, when the prompt is visible within the window, then
scroll so that the prompt is on the bottom on any input or
output."
:type 'boolean)
(defcustom term-scroll-show-maximum-output nil
"Controls how interpreter output causes window to scroll.
If non-nil, then show the maximum output when the window is scrolled.
@ -3108,15 +3115,19 @@ See `term-prompt-regexp'."
(or (eq scroll 'this) (not save-point)))
(and (eq scroll 'others)
(not (eq selected win))))
(goto-char term-home-marker)
(recenter 0)
(when term-scroll-snap-to-bottom
(goto-char term-home-marker)
(recenter 0))
(goto-char (process-mark proc))
(if (not (pos-visible-in-window-p (point) win))
(recenter -1)))
;; Optionally scroll so that the text
;; ends at the bottom of the window.
(when (and term-scroll-show-maximum-output
(>= (point) (process-mark proc)))
(>= (point) (process-mark proc))
(or term-scroll-snap-to-bottom
(not (pos-visible-in-window-p
(point-max) win))))
(save-excursion
(goto-char (point-max))
(recenter -1)))))