From 51c8350be8979bc1e54bb657f155467dbe788bc5 Mon Sep 17 00:00:00 2001 From: jao Date: Fri, 11 Jun 2021 19:43:22 +0100 Subject: vterm to the attic --- attic/misc.org | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) (limited to 'attic') diff --git a/attic/misc.org b/attic/misc.org index 7dd38cf..b902e18 100644 --- a/attic/misc.org +++ b/attic/misc.org @@ -457,3 +457,54 @@ ("C-x 4 f" . jao-switch-window-then-find-file) ("C-x 4 b" . jao-switch-window-then-consult-buffer))) #+end_src + +* vterm + #+begin_src emacs-lisp + (use-package vterm + :ensure t + :init + (setq vterm-kill-buffer-on-exit t + vterm-copy-exclude-prompt t + vterm-use-vterm-prompt-detection-method t + vterm-buffer-name-string nil) + :config + (define-key vterm-mode-map [(f1)] nil) + :bind (:map vterm-mode-map (("C-c C-c" . vterm-send-C-c)))) + + (defun jao-exec-in-vterm (cmd &optional name) + (vterm) + (when name (vterm-send-string "unset PROMPT_COMMAND\n")) + (vterm-send-string cmd) + (vterm-send-return) + (when name (rename-buffer name))) + + (defun jao-exec-in-vterm (cmd &optional name) + (ansi-term cmd name)) + + (defvar-local jao-vterm--cmd nil) + + (defun jao-vterm--find (cmd) + (seq-find (lambda (b) + (and (eq (buffer-local-value 'major-mode b) 'vterm-mode) + (string= (or (buffer-local-value 'jao-vterm--cmd b) "") + cmd))) + (buffer-list))) + + (defmacro jao-def-exec-in-vterm (name cmd &rest prelude) + `(defun ,(intern (format "jao-vterm-%s" name)) () + (interactive) + ,@prelude + (if-let ((b (jao-vterm--find ,cmd))) + (pop-to-buffer b) + (jao-exec-in-vterm (format "%s; exit" ,cmd) + ,(when name (format "%s" name))) + (setq-local jao-vterm--cmd ,cmd)))) + + (jao-def-exec-in-vterm aptitude "aptitude" (jao-afio--goto-scratch)) + (jao-def-exec-in-vterm htop "htop" (jao-afio--goto-scratch)) + #+end_src +*** Vterm repls + #+begin_src emacs-lisp + (use-package jao-vterm-repl) + (jao-define-attached-buffer "^\\* vrepl - .+ \\*.*") + #+end_src -- cgit v1.2.3