diff options
Diffstat (limited to '.config')
-rw-r--r-- | .config/emacs/modules/bd--shells.el | 60 |
1 files changed, 35 insertions, 25 deletions
diff --git a/.config/emacs/modules/bd--shells.el b/.config/emacs/modules/bd--shells.el index 4ffe8ec..69427bf 100644 --- a/.config/emacs/modules/bd--shells.el +++ b/.config/emacs/modules/bd--shells.el @@ -14,27 +14,27 @@ ARGS are passed to the program. At the moment, no piping of input is allowed." (let* (eshell-interpreter-alist - (interp (eshell-find-interpreter (car args) (cdr args))) - (program (car interp)) - (args (mapconcat #'shell-quote-argument - (flatten-tree - (eshell-stringify-list (append (cdr interp) - (cdr args)))) " ")) - (term-buf - (generate-new-buffer - (concat "*" (file-name-nondirectory program) "*"))) - (eshell-buf (current-buffer)) - (vterm-shell (concat (shell-quote-argument - (file-local-name program)) - " " args))) + (interp (eshell-find-interpreter (car args) (cdr args))) + (program (car interp)) + (args (mapconcat #'shell-quote-argument + (flatten-tree + (eshell-stringify-list (append (cdr interp) + (cdr args)))) " ")) + (term-buf + (generate-new-buffer + (concat "*" (file-name-nondirectory program) "*"))) + (eshell-buf (current-buffer)) + (vterm-shell (concat (shell-quote-argument + (file-local-name program)) + " " args))) (save-current-buffer - (switch-to-buffer term-buf) - (vterm-mode) - (setq-local eshell-parent-buffer eshell-buf) - (let ((proc (get-buffer-process term-buf))) - (if (and proc (eq 'run (process-status proc))) - (set-process-sentinel proc #'eshell-term-sentinel) - (error "Failed to invoke visual command"))))) + (switch-to-buffer term-buf) + (vterm-mode) + (setq-local eshell-parent-buffer eshell-buf) + (let ((proc (get-buffer-process term-buf))) + (if (and proc (eq 'run (process-status proc))) + (set-process-sentinel proc #'eshell-term-sentinel) + (error "Failed to invoke visual command"))))) nil) (advice-add #'eshell-exec-visual :override #'bd/eshell-exec-visual)) @@ -50,16 +50,26 @@ allowed." :config (setopt eshell-banner-message (concat "\n" (propertize " " 'display (create-image (expand-file-name "images/raven.png" user-emacs-directory) 'png nil :scale 0.8 :align-to "center")) "\n"))) +(use-package em-hist + :config + (setopt eshell-hist-ignoredups t + eshell-history-append t)) + (use-package em-term :config (mapc (lambda (x) (add-to-list 'eshell-visual-commands x)) - '( - "angband" - "nethack" - "r2" - )) + '( + "angband" + "nethack" + "r2" + )) (setopt eshell-destroy-buffer-when-process-dies t)) +(use-package em-unix + :config + (setopt eshell-cp-overwrite-files nil + eshell-mv-overwrite-files nil)) + (use-package em-prompt :config (defun bd/get-prompt-path () |