summaryrefslogtreecommitdiffstats
path: root/lisp/bandali-eshell.el
diff options
context:
space:
mode:
authorAmin Bandali <bandali@gnu.org>2020-04-12 14:38:15 -0400
committerAmin Bandali <bandali@gnu.org>2020-04-12 14:38:15 -0400
commit679463c61523f4eed0ab40468e9504166863e4ac (patch)
treea354c179d17459d234b2f94a3f57f0b3dc6ae648 /lisp/bandali-eshell.el
parent97141042900a4675b2fb9c8bef6bcae6c69c7f1e (diff)
downloadconfigs-679463c61523f4eed0ab40468e9504166863e4ac.tar.gz
configs-679463c61523f4eed0ab40468e9504166863e4ac.tar.xz
configs-679463c61523f4eed0ab40468e9504166863e4ac.zip
Move dired, eshell, ibuffer, ido, and ivy to separate files in lisp/
Diffstat (limited to 'lisp/bandali-eshell.el')
-rw-r--r--lisp/bandali-eshell.el50
1 files changed, 50 insertions, 0 deletions
diff --git a/lisp/bandali-eshell.el b/lisp/bandali-eshell.el
new file mode 100644
index 0000000..07ed623
--- /dev/null
+++ b/lisp/bandali-eshell.el
@@ -0,0 +1,50 @@
+(use-package eshell
+ :commands eshell
+ :bind ("C-c a s e" . eshell)
+ :config
+ (eval-when-compile (defvar eshell-prompt-regexp))
+ (defun b/eshell-quit-or-delete-char (arg)
+ (interactive "p")
+ (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)
+ (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))
+
+(provide 'bandali-eshell)