summaryrefslogtreecommitdiffhomepage
path: root/attic
diff options
context:
space:
mode:
authorjao <jao@gnu.org>2021-06-11 19:43:22 +0100
committerjao <jao@gnu.org>2021-06-11 19:43:22 +0100
commit51c8350be8979bc1e54bb657f155467dbe788bc5 (patch)
tree30b3c1da25e7b6e0bd618dbffd83bbbe4a8b83c3 /attic
parente754fd59140725d6fe6ab584f24a44df412cf6a3 (diff)
downloadelibs-51c8350be8979bc1e54bb657f155467dbe788bc5.tar.gz
elibs-51c8350be8979bc1e54bb657f155467dbe788bc5.tar.bz2
vterm to the attic
Diffstat (limited to 'attic')
-rw-r--r--attic/misc.org51
1 files changed, 51 insertions, 0 deletions
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