X-Git-Url: https://git.shemshak.org/~bandali/configs/blobdiff_plain/3d7cc479c6dcc9550b9f03176272f5a9c4655b4c..514148d8bef4b14c8754197197c32b212dfb79c2:/lisp/bandali-eshell.el diff --git a/lisp/bandali-eshell.el b/lisp/bandali-eshell.el index 099cbb3..820dc05 100644 --- a/lisp/bandali-eshell.el +++ b/lisp/bandali-eshell.el @@ -24,10 +24,26 @@ ;;; Code: -(use-package eshell - :commands eshell - :bind ("C-c a s e" . eshell) - :config +(with-eval-after-load 'eshell + (make-directory (b/etc "eshell/") t) + (csetq + eshell-aliases-file (b/etc "eshell/aliases") + eshell-directory-name (b/var "eshell/") + eshell-hist-ignoredups t + eshell-input-filter #'eshell-input-filter-initial-space + eshell-prompt-regexp "\\(.*\n\\)*[$#] " + eshell-prompt-function + (lambda () + (concat + (propertize (format "%s@%s:" (user-login-name) (system-name)) + 'face 'default) + (propertize (abbreviate-file-name default-directory) + 'face 'font-lock-comment-face) + (propertize "\n" 'face 'default) + (if (= (user-uid) 0) + (propertize "#" 'face 'red) + (propertize "$" 'face 'default)) + (propertize " " 'face 'default)))) (eval-when-compile (defvar eshell-prompt-regexp) (declare-function eshell-life-is-too-much "esh-mode") @@ -38,13 +54,11 @@ (if (and (eolp) (looking-back eshell-prompt-regexp nil)) (eshell-life-is-too-much) (delete-char arg))) - (defun b/eshell-clear () (interactive) (let ((inhibit-read-only t)) (erase-buffer)) (eshell-send-input)) - (defun b/eshell-setup () (make-local-variable 'company-idle-delay) (defvar company-idle-delay) @@ -52,33 +66,21 @@ (defvar eshell-mode-map) (defvar eshell-hist-mode-map)) (setq company-idle-delay nil) - (bind-keys :map eshell-mode-map - ("C-d" . b/eshell-quit-or-delete-char) - ("C-S-l" . b/eshell-clear) - ("M-r" . counsel-esh-history) - ;; ([tab] . company-complete) - :map eshell-hist-mode-map - ("M-r" . counsel-esh-history))) - - (setq - eshell-prompt-regexp "\\(.*\n\\)*[$#] " - eshell-prompt-function - (lambda () - (concat - (propertize (format "%s@%s:" (user-login-name) (system-name)) - 'face 'default) - (propertize (abbreviate-file-name default-directory) - 'face 'font-lock-comment-face) - (propertize "\n" 'face 'default) - (if (= (user-uid) 0) - (propertize "#" 'face 'red) - (propertize "$" 'face 'default)) - (propertize " " 'face 'default)))) - - :hook (eshell-mode . b/eshell-setup) - :custom - (eshell-hist-ignoredups t) - (eshell-input-filter 'eshell-input-filter-initial-space)) + ;; local key bindings + (define-key eshell-mode-map (kbd "C-d") + #'b/eshell-quit-or-delete-char) + (define-key eshell-mode-map (kbd "C-S-l") + #'b/eshell-clear) + (define-key eshell-mode-map (kbd "M-r") + #'counsel-esh-history) + ;; (define-key eshell-mode-map [tab] + ;; #'company-complete) + (define-key eshell-hist-mode-map (kbd "M-r") + #'counsel-esh-history))) +;; global key bindings +(global-set-key (kbd "C-c a s e") #'eshell) +;; hooks +(add-hook 'eshell-mode-hook #'b/eshell-setup) (provide 'bandali-eshell) ;;; bandali-eshell.el ends here