From 6c576d1e64e8c7dfb1492f521dafab9103e22495 Mon Sep 17 00:00:00 2001 From: Gergely Polonkai Date: Tue, 27 Sep 2016 16:33:53 +0200 Subject: [PATCH] Context-based delete-char or close shell in eshell --- init.el | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/init.el b/init.el index 9f41061..3ce4060 100644 --- a/init.el +++ b/init.el @@ -520,3 +520,19 @@ Version 2016-02-16" (setq zone-programs [zone-nyan]) (require 'zone) (zone-when-idle 30) + +; delete-char or close eshell +; Copied from https://ryuslash.org/posts/C-d-to-close-eshell.html +(defun eshell-C-d () + "Either call `delete-char' interactively or quit." + (interactive) + + (condition-case err + (call-interactively #'delete-char) + (error (if (and (eq (car err) 'end-of-buffer) + (looking-back eshell-prompt-regexp)) + (kill-buffer) + (signal (car err) (cdr err)))))) + +(add-hook 'eshell-mode-hook + (lambda () (local-set-key (kbd "C-d") #'eshell-C-d)))