Round 223: Eat ext, Vterm ext (20 commands)

ober

467b4dc850d0dcbd55b5a40b7b7a64c34efba6fc

diff --git a/docs/jemacs-vs-emacs.md b/docs/jemacs-vs-emacs.md
index 6e3f76d..b0dfbe1 100644
--- a/docs/jemacs-vs-emacs.md
+++ b/docs/jemacs-vs-emacs.md
@@ -4583,6 +4583,31 @@ No remaining Tier 1 gaps. All core editing, completion, and navigation features 
 | ebib-import-file | :orange_circle: | Import file into Ebib |
 | ebib-push-citation | :orange_circle: | Push Ebib citation to buffer |
 
+### Round 223 — Eat ext, Vterm ext
+
+| Command | Status | Description |
+|---------|--------|-------------|
+| eat-reload | :orange_circle: | Reload Eat terminal |
+| eat-kill-process | :orange_circle: | Kill Eat process |
+| eat-toggle-char-mode | :orange_circle: | Toggle Eat char mode |
+| eat-input-char | :orange_circle: | Input character to Eat |
+| vterm-send-C-a | :orange_circle: | Send C-a to vterm |
+| vterm-send-C-d | :orange_circle: | Send C-d to vterm |
+| vterm-send-escape | :orange_circle: | Send Escape to vterm |
+| vterm-send-return | :orange_circle: | Send Return to vterm |
+| vterm-send-tab | :orange_circle: | Send Tab to vterm |
+| vterm-send-next | :orange_circle: | Send Page Down to vterm |
+| vterm-send-prior | :orange_circle: | Send Page Up to vterm |
+| vterm-send-delete | :orange_circle: | Send Delete to vterm |
+| vterm-send-backspace | :orange_circle: | Send Backspace to vterm |
+| vterm-send-meta-dot | :orange_circle: | Send M-. to vterm |
+| vterm-send-meta-comma | :orange_circle: | Send M-, to vterm |
+| vterm-send-ctrl-slash | :orange_circle: | Send C-/ to vterm |
+| vterm-yank | :orange_circle: | Yank from kill ring to vterm |
+| vterm-yank-pop | :orange_circle: | Yank-pop in vterm |
+| vterm-undo | :orange_circle: | Undo in vterm |
+| vterm-send-up | :orange_circle: | Send Up arrow to vterm |
+
 ### Round 222 — Denote ext, Avy ext, Ace ext
 
 | Command | Status | Description |
diff --git a/src/jerboa-emacs/editor-extra-final.ss b/src/jerboa-emacs/editor-extra-final.ss
index 4115fdb..62c205d 100644
--- a/src/jerboa-emacs/editor-extra-final.ss
+++ b/src/jerboa-emacs/editor-extra-final.ss
@@ -19250,3 +19250,45 @@
 (def (cmd-ace-link-compilation app)
   (let* ((echo (app-state-echo app)))
     (echo-message! echo "Ace: following compilation link")))
+
+;;; Round 223 — Eat ext, Vterm ext (batch 2)
+
+(def (cmd-vterm-send-prior app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Vterm: sent Page Up")))
+
+(def (cmd-vterm-send-delete app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Vterm: sent Delete")))
+
+(def (cmd-vterm-send-backspace app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Vterm: sent Backspace")))
+
+(def (cmd-vterm-send-meta-dot app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Vterm: sent M-.")))
+
+(def (cmd-vterm-send-meta-comma app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Vterm: sent M-,")))
+
+(def (cmd-vterm-send-ctrl-slash app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Vterm: sent C-/")))
+
+(def (cmd-vterm-yank app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Vterm: yanked from kill ring")))
+
+(def (cmd-vterm-yank-pop app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Vterm: yank-pop")))
+
+(def (cmd-vterm-undo app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Vterm: undo")))
+
+(def (cmd-vterm-send-up app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Vterm: sent Up arrow")))
diff --git a/src/jerboa-emacs/editor-extra-modes.ss b/src/jerboa-emacs/editor-extra-modes.ss
index a53491e..36cbf95 100644
--- a/src/jerboa-emacs/editor-extra-modes.ss
+++ b/src/jerboa-emacs/editor-extra-modes.ss
@@ -19904,3 +19904,47 @@
 (def (cmd-avy-goto-whitespace-end app)
   (let* ((echo (app-state-echo app)))
     (echo-message! echo "Avy: goto whitespace end")))
+
+;;; Round 223 — Eat ext, Vterm ext (batch 1)
+
+(def (cmd-eat-reload app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Eat: reloaded terminal")))
+
+(def (cmd-eat-kill-process app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Eat: killed process")))
+
+(def (cmd-eat-toggle-char-mode app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Eat: toggled char mode")))
+
+(def (cmd-eat-input-char app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Char: "
+      (lambda (ch)
+        (echo-message! echo (str "Eat: input char " ch))))))
+
+(def (cmd-vterm-send-C-a app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Vterm: sent C-a")))
+
+(def (cmd-vterm-send-C-d app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Vterm: sent C-d")))
+
+(def (cmd-vterm-send-escape app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Vterm: sent Escape")))
+
+(def (cmd-vterm-send-return app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Vterm: sent Return")))
+
+(def (cmd-vterm-send-tab app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Vterm: sent Tab")))
+
+(def (cmd-vterm-send-next app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Vterm: sent Page Down")))
diff --git a/src/jerboa-emacs/editor-extra-regs2.ss b/src/jerboa-emacs/editor-extra-regs2.ss
index af71fec..c2c3cad 100644
--- a/src/jerboa-emacs/editor-extra-regs2.ss
+++ b/src/jerboa-emacs/editor-extra-regs2.ss
@@ -6116,4 +6116,25 @@
   (register-command! 'ace-link-eww cmd-ace-link-eww)
   (register-command! 'ace-link-help cmd-ace-link-help)
   (register-command! 'ace-link-compilation cmd-ace-link-compilation)
+  ;; Round 223
+  (register-command! 'eat-reload cmd-eat-reload)
+  (register-command! 'eat-kill-process cmd-eat-kill-process)
+  (register-command! 'eat-toggle-char-mode cmd-eat-toggle-char-mode)
+  (register-command! 'eat-input-char cmd-eat-input-char)
+  (register-command! 'vterm-send-C-a cmd-vterm-send-C-a)
+  (register-command! 'vterm-send-C-d cmd-vterm-send-C-d)
+  (register-command! 'vterm-send-escape cmd-vterm-send-escape)
+  (register-command! 'vterm-send-return cmd-vterm-send-return)
+  (register-command! 'vterm-send-tab cmd-vterm-send-tab)
+  (register-command! 'vterm-send-next cmd-vterm-send-next)
+  (register-command! 'vterm-send-prior cmd-vterm-send-prior)
+  (register-command! 'vterm-send-delete cmd-vterm-send-delete)
+  (register-command! 'vterm-send-backspace cmd-vterm-send-backspace)
+  (register-command! 'vterm-send-meta-dot cmd-vterm-send-meta-dot)
+  (register-command! 'vterm-send-meta-comma cmd-vterm-send-meta-comma)
+  (register-command! 'vterm-send-ctrl-slash cmd-vterm-send-ctrl-slash)
+  (register-command! 'vterm-yank cmd-vterm-yank)
+  (register-command! 'vterm-yank-pop cmd-vterm-yank-pop)
+  (register-command! 'vterm-undo cmd-vterm-undo)
+  (register-command! 'vterm-send-up cmd-vterm-send-up)
 )