summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAmin Bandali <amin@gnu.org>2018-08-29 22:13:15 -0400
committerAmin Bandali <amin@gnu.org>2018-08-29 22:13:15 -0400
commit4d987946cb62cd565b696cda7f2a2316fc93dc8b (patch)
tree82ed3bab1b3f92889c29f9bbc3b116f43fea6576
parentf1e3161264dec7f2d12f0280a0b71d11e62cc5c4 (diff)
downloadconfigs-4d987946cb62cd565b696cda7f2a2316fc93dc8b.tar.gz
configs-4d987946cb62cd565b696cda7f2a2316fc93dc8b.tar.xz
configs-4d987946cb62cd565b696cda7f2a2316fc93dc8b.zip
[emacs] have C-d quit eshell on empty prompt input
-rw-r--r--init.org20
1 files changed, 20 insertions, 0 deletions
diff --git a/init.org b/init.org
index 51cd9ca..9c294be 100644
--- a/init.org
+++ b/init.org
@@ -753,6 +753,26 @@ There's no way I could top that, so I won't attempt to.
(defalias 'locate #'counsel-locate))
#+end_src
+*** eshell
+
+#+begin_src emacs-lisp
+(use-package eshell
+ :commands eshell
+ :config
+ (eval-when-compile (defvar eshell-prompt-regexp))
+ (defun amin/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 amin|eshell-setup ()
+ (bind-keys :map eshell-mode-map
+ ("C-d" . amin/eshell-quit-or-delete-char)))
+
+ :hook (eshell-mode . amin|eshell-setup))
+#+end_src
+
* Borg's =layer/essentials=
TODO: break this giant source block down into individual org sections.