From 3073019cf49a8bec6445e12a7135a6a38a385b4a Mon Sep 17 00:00:00 2001 From: bd Date: Thu, 27 Mar 2025 01:35:48 -0400 Subject: ignore duplicate eshell history, safer cp/mv --- .config/emacs/modules/bd--shells.el | 60 +++++++++++++++++++++---------------- 1 file changed, 35 insertions(+), 25 deletions(-) (limited to '.config/emacs') 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 () -- cgit v1.2.3