diff options
| author | Craig Jennings <c@cjennings.net> | 2026-06-26 09:31:15 -0400 |
|---|---|---|
| committer | Craig Jennings <c@cjennings.net> | 2026-06-26 09:31:15 -0400 |
| commit | f8b869bf0b3b59be8bad9c6ee429f9a3e7b478d7 (patch) | |
| tree | 7b05cda857d256298b70bf4aff8cc3c35f89bd87 /tests | |
| parent | 2453198a1f580e8a95372ec07755659ff33a68d6 (diff) | |
| download | dotemacs-f8b869bf0b3b59be8bad9c6ee429f9a3e7b478d7.tar.gz dotemacs-f8b869bf0b3b59be8bad9c6ee429f9a3e7b478d7.zip | |
fix(eat): forward word-motion arrows to the terminal in agent buffers
C-/M-left/right were in EAT's default eat-semi-char-non-bound-keys, so they fell through to Emacs and ran left-word/right-word, moving point in the EAT buffer instead of being sent to the program. The terminal's own cursor never moved, so the next keystroke snapped point back to the real cursor -- the "cursor jumps back" symptom when editing claude's input. Bind them to eat-self-input so they forward as word motion, the way ghostel did. Window arrows (S-, C-M-) still reach Emacs for windmove and buffer-move.
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/test-term-tmux-history.el | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/tests/test-term-tmux-history.el b/tests/test-term-tmux-history.el index c7154e5d2..1dbf6b0bf 100644 --- a/tests/test-term-tmux-history.el +++ b/tests/test-term-tmux-history.el @@ -288,5 +288,13 @@ returns to semi-char from EAT's emacs/char mode -- one exit key for both." (cj/term-send-escape) (should (equal sent '("\e")))))) +(ert-deftest test-term-word-motion-arrows-forwarded-not-window-arrows () + "Normal: C-/M-left/right forward to the terminal (word motion in the program's +input) instead of moving Emacs point; windmove's S-arrows still reach Emacs." + (dolist (key '("C-<left>" "C-<right>" "M-<left>" "M-<right>")) + (should (eq (keymap-lookup eat-semi-char-mode-map key) #'eat-self-input))) + (dolist (key '("S-<left>" "S-<right>")) + (should-not (eq (keymap-lookup eat-semi-char-mode-map key) #'eat-self-input)))) + (provide 'test-term-tmux-history) ;;; test-term-tmux-history.el ends here |
