aboutsummaryrefslogtreecommitdiff
path: root/modules
diff options
context:
space:
mode:
authorCraig Jennings <c@cjennings.net>2026-05-13 15:39:40 -0500
committerCraig Jennings <c@cjennings.net>2026-05-13 15:39:40 -0500
commit84944a8572a84862fa39e52a62ccba24cdee9891 (patch)
treec25a48ea537955974606d2eb085d3802d47a16cc /modules
parentdf2b59b9d6e75d7d9139cac1919eab558751d816 (diff)
downloaddotemacs-84944a8572a84862fa39e52a62ccba24cdee9891.tar.gz
dotemacs-84944a8572a84862fa39e52a62ccba24cdee9891.zip
feat(vterm): show tmux scrollback history in place
`cj/vterm-tmux-history' previously used `pop-to-buffer', which routed the history view through display-buffer-alist -- in an agent window that often meant a split or a hand-off to another window, costing the agent its frame slot. `switch-to-buffer' instead drops the history into the selected window directly; the existing quit handler already restores the origin in that same window via `set-window-buffer'. New test asserts the in-place behavior: starting single-window with a vterm origin, invoking the command leaves `(one-window-p)` t with the history buffer in the original slot. The existing render test no longer needs its `pop-to-buffer' stub since `switch-to-buffer' works in batch.
Diffstat (limited to 'modules')
-rw-r--r--modules/vterm-config.el9
1 files changed, 7 insertions, 2 deletions
diff --git a/modules/vterm-config.el b/modules/vterm-config.el
index 764c9dcd7..954e096ab 100644
--- a/modules/vterm-config.el
+++ b/modules/vterm-config.el
@@ -121,7 +121,12 @@ returns to the vterm without copying. RET is left unbound."
The history buffer uses normal Emacs navigation and selection. `M-w'
copies the active region and stays open, so several pieces can be
copied in a row; `q', `<escape>', or `C-g' returns point to the vterm
-buffer that launched it."
+buffer that launched it.
+
+The history view replaces the origin vterm buffer in the same window
+(via `switch-to-buffer'), not a split or a popped-up window -- reading
+past output should keep the agent's frame slot intact, and quit puts
+the live terminal back where it was."
(interactive)
(let* ((origin-buffer (current-buffer))
(origin-window (selected-window))
@@ -139,7 +144,7 @@ buffer that launched it."
(setq-local cj/vterm-tmux-history--origin-window origin-window)
(setq-local cj/vterm-tmux-history--origin-point origin-point)
(goto-char (point-max)))
- (pop-to-buffer buffer)))
+ (switch-to-buffer buffer)))
(defun cj/vterm-copy-mode-cancel ()
"Exit `vterm-copy-mode' without copying."