all repos — nixfiles @ 8a652a8ec8620e043d9b0c1c5d4d58c402a3db66

System and user configuration, managed by nix and home-manager

Emacs: improve eshell setup

Alan Pearce
commit

8a652a8ec8620e043d9b0c1c5d4d58c402a3db66

parent

b7c34e2d75a4709bf6bf9d0c0f2d4fc8b908a437

2 files changed, 40 insertions(+), 1 deletion(-)

jump to
A emacs/.emacs.d/eshell/alias
@@ -0,0 +1,2 @@
+alias up eshell-up $1 +alias pk eshell-up-pk $1
M emacs/.emacs.d/main.elemacs/.emacs.d/main.el
@@ -280,7 +280,8 @@ :config (progn
(add-to-list 'projectile-globally-ignored-files "package-lock.json") (add-to-list 'projectile-globally-ignored-files "pnpm-lock.yaml") (with-eval-after-load 'evil-ex - (evil-ex-define-cmd "prg" #'projectile-ripgrep)))) + (evil-ex-define-cmd "prg" #'projectile-ripgrep) + (evil-ex-define-cmd "pesh[ell]" #'projectile-run-eshell)))) (use-package counsel-projectile :commands (counsel-projectile-switch-project
@@ -439,10 +440,46 @@ ;;; Shells
(use-package eshell :defer 5 + :commands (eshell) :functions (eshell/pwd) + :init (progn + (with-eval-after-load 'evil-ex + (evil-ex-define-cmd "esh[ell]" #'eshell))) :custom ((eshell-prompt-function (lambda () (concat (eshell/pwd) "\n$ "))) (eshell-prompt-regexp "^[$][[:blank:]]"))) + +(use-package esh-autosuggest + :ghook ('eshell-mode-hook)) + +(defun my-bind-esh-push () + (general-define-key + :states '(normal insert) + :keymaps 'local + "M-q" #'eshell-push-command)) + +(use-package esh-buf-stack + :ghook ('eshell-mode-hook #'my-bind-esh-push) + :config (setup-eshell-buf-stack)) + +(use-package bash-completion + :after (eshell)) + +(use-package fish-completion + :when (executable-find "fish") + :after (bash-completion) + :custom ((fish-completion-fallback-on-bash-p t)) + :config (global-fish-completion-mode)) + +(use-package esh-help + :after (eshell) + :config (setup-esh-help-eldoc)) + +(use-package eshell-fringe-status + :ghook '(eshell-mode-hook)) + +(use-package eshell-up + :after (eshell)) (use-package shell :general (:keymaps 'shell-mode-map