Add: tools/eshell: C-d now quits or deletes depending on state

this is the default behavior of bash, zsh et al.
This commit is contained in:
Benjamin Andresen 2017-07-21 16:50:44 +02:00
parent d0e84e3d41
commit 22c9e2350d
2 changed files with 8 additions and 0 deletions

View file

@ -35,6 +35,13 @@ module to be loaded."
(+eshell/run)) (+eshell/run))
(doom/workspace-display)) (doom/workspace-display))
;;;###autoload
(defun +eshell/quit-or-delete-char (arg)
(interactive "p")
(if (and (eolp) (looking-back eshell-prompt-regexp))
(eshell-life-is-too-much)
(delete-forward-char arg)))
(defun +eshell--outside-prompt-p () (defun +eshell--outside-prompt-p ()
(< (point) eshell-last-output-end)) (< (point) eshell-last-output-end))

View file

@ -52,6 +52,7 @@ redefines its keys every time `eshell-mode' is enabled."
:i "C-u" #'eshell-kill-input :i "C-u" #'eshell-kill-input
:i "SPC" #'self-insert-command :i "SPC" #'self-insert-command
:i "C-a" #'eshell-bol :i "C-a" #'eshell-bol
:i "C-d" #'+eshell/quit-or-delete-char
:m "<return>" #'+eshell/evil-append :m "<return>" #'+eshell/evil-append
:n [remap evil-window-split] #'+eshell/split :n [remap evil-window-split] #'+eshell/split
:n [remap evil-window-vsplit] #'+eshell/vsplit :n [remap evil-window-vsplit] #'+eshell/vsplit