From 153ad716e352efffa43908673725cd338cb78684 Mon Sep 17 00:00:00 2001 From: brotzeit Date: Tue, 21 Jul 2020 20:57:32 +0200 Subject: [PATCH] add possibility to store history in file --- vterm.el | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/vterm.el b/vterm.el index 9c73f18f..3fca23e0 100644 --- a/vterm.el +++ b/vterm.el @@ -708,14 +708,36 @@ will invert `vterm-copy-exclude-prompt' for that call." (interactive) (vterm-send-key "")) +(defvar vterm-history-save t) +(defvar vterm-history-file "~/.emacs.d/vterm_history") + (defun vterm-send-return () "Send `C-m' to the libvterm." (interactive) (when vterm--term + (when (and vterm-history-save (not process-running-child-p)) + (let* ((beg (vterm--get-prompt-point)) + (end (vterm--get-end-of-line)) + (string (string-trim (buffer-substring-no-properties beg end))) + (file vterm-history)) + (write-region (concat string "\n") nil file t 0))) (if (vterm--get-icrnl vterm--term) (process-send-string vterm--process "\C-j") (process-send-string vterm--process "\C-m")))) +(defun vterm-history () + (interactive) + (completing-read "Command: " + (with-current-buffer + (find-file-noselect vterm-history-file) + (split-string + (save-restriction + (widen) + (buffer-substring-no-properties + (point-min) + (point-max))) + "\n" t)))) + (defun vterm-send-tab () "Send `' to the libvterm." (interactive)