Make C-d quit eshell when appropriate
This commit is contained in:
parent
3106af31fe
commit
6167a906c6
1 changed files with 20 additions and 0 deletions
|
@ -23,3 +23,23 @@ Show the status of each command in the fringe of the eshell buffer.
|
||||||
#+BEGIN_SRC emacs-lisp
|
#+BEGIN_SRC emacs-lisp
|
||||||
(add-hook 'eshell-mode-hook 'eshell-fringe-status-mode)
|
(add-hook 'eshell-mode-hook 'eshell-fringe-status-mode)
|
||||||
#+END_SRC
|
#+END_SRC
|
||||||
|
|
||||||
|
Close the buffer when C-d is pressed and we're at the end of the
|
||||||
|
buffer.
|
||||||
|
|
||||||
|
#+BEGIN_SRC emacs-lisp
|
||||||
|
(defun oni:eshell-C-d ()
|
||||||
|
"Call `delete-char' or close the buffer if it fails."
|
||||||
|
(interactive)
|
||||||
|
(condition-case err
|
||||||
|
(call-interactively #'delete-char)
|
||||||
|
(error (if (and (eq (car err) 'end-of-buffer)
|
||||||
|
(looking-back eshell-prompt-regexp nil))
|
||||||
|
(kill-buffer)
|
||||||
|
(signal (car err) (cdr err))))))
|
||||||
|
|
||||||
|
(defun oni:set-eshell-C-d ()
|
||||||
|
(define-key eshell-mode-map (kbd "C-d") #'oni:eshell-C-d))
|
||||||
|
|
||||||
|
(add-hook 'eshell-load-hook #'oni:set-eshell-C-d)
|
||||||
|
#+END_SRC
|
||||||
|
|
Loading…
Reference in a new issue