Warning: this is an htmlized version!
The original is here, and the conversion rules are here. |
;; This file: ;; http://angg.twu.net/elisp/eepitch-vterm.el.html ;; http://angg.twu.net/elisp/eepitch-vterm.el ;; (find-angg "elisp/eepitch-vterm.el") ;; Author: Eduardo Ochs <eduardoochs@gmail.com> (defvar eepitch-line 'nil) ; cheap indirection (defun eepitch-line (line) "Send LINE to the target window and run the key binding for RET there. If the value in the variable `eepitch-line' is non-nil then call the function in that variable instead of running the default code. This is a low-level function used by `eepitch-this-line'." (if eepitch-line (funcall eepitch-line line) (eepitch-eval-at-target-window ; Default behavior: '(progn (goto-char (point-max)) ; at the end of buffer (insert line) ; "type" the line (call-interactively (key-binding "\r")))))) ; then do a RET (defun eepitch (code) "Set up a target for eepitch and make sure it is displayed in another window. The argument CODE must be a \"shell-like sexp\", i.e., one that when evaluated always switches to a buffer with a fixed name, and when that buffer does not exists it creates it.\n This function sets `eepitch-code' to CODE and sets the variables `eepitch-window-show' and `eepitch-kill' to defaults that are good for two-window settings, and then calls `eepitch-prepare', which does all the hard work." (setq eepitch-code code) (setq eepitch-buffer-name "") ; so that `eepitch-buffer-exists' will fail (setq eepitch-window-show ; set the way to set up windows to the '(eepitch-window-show)) ; default two-window setting (setq eepitch-kill ; set the behavior of `eepitch-kill' '(eepitch-kill-buffer)) ; to just kill the target buffer (setq eepitch-line nil) ; use the default `eepitch-line' (eepitch-prepare) (list 'Target: eepitch-buffer-name)) ; feedback (for <f8> and `M-e') (defun eepitch-line-vterm (line) "Send LINE to the vterm buffer and run the key binding for RET there." (eepitch-eval-at-target-window '(progn (vterm-send-string line) ; "type" the line (vterm-send-return)))) ; then do a RET (defun eepitch-vterm () (interactive) (eepitch '(vterm)) (setq eepitch-line 'eepitch-line-vterm)) ;; (load (buffer-file-name)) '( * (eepitch-vterm) * (eepitch-kill) * (eepitch-vterm) ls cd /tmp/ )