From 34eb203919ed05cf1cb0f4e405bcee4870872277 Mon Sep 17 00:00:00 2001 From: Tom Willemse Date: Mon, 16 Jul 2018 20:25:42 -0700 Subject: Move eshell config to separate file --- emacs/.emacs.d/init/oni-eshell-init.el | 54 ++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 emacs/.emacs.d/init/oni-eshell-init.el (limited to 'emacs/.emacs.d/init/oni-eshell-init.el') diff --git a/emacs/.emacs.d/init/oni-eshell-init.el b/emacs/.emacs.d/init/oni-eshell-init.el new file mode 100644 index 0000000..bae1acb --- /dev/null +++ b/emacs/.emacs.d/init/oni-eshell-init.el @@ -0,0 +1,54 @@ +;;; oni-eshell-init.el --- Eshell config -*- lexical-binding: t; -*- + +;; Copyright (C) 2018 Tom Willemse + +;; Author: Tom Willemse +;; Keywords: local + +;; This program is free software; you can redistribute it and/or modify +;; it under the terms of the GNU General Public License as published by +;; the Free Software Foundation, either version 3 of the License, or +;; (at your option) any later version. + +;; This program is distributed in the hope that it will be useful, +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;; GNU General Public License for more details. + +;; You should have received a copy of the GNU General Public License +;; along with this program. If not, see . + +;;; Commentary: + +;; My Eshell configuration. + +;;; Code: + +(require 'eshell) +(require 'em-prompt) + +(defun oni-eshell-init-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-eshell-init-enable-truncating-buffers () + "Add `eshell-truncate-buffer' to `eshell-output-filter-functions'." + (add-to-list 'eshell-output-filter-functions 'eshell-truncate-buffer)) + +(add-hook 'eshell-load-hook #'oni-eshell-init-enable-truncating-buffers) +(add-hook 'eshell-mode-hook 'eshell-fringe-status-mode) + +(defun oni:set-eshell-C-d () + "Set `C-d' to quit eshell if used at end of prompt." + (define-key eshell-mode-map (kbd "C-d") #'oni-eshell-init-C-d)) + +(add-hook 'eshell-first-time-mode-hook #'oni:set-eshell-C-d) + +(provide 'oni-eshell-init) +;;; oni-eshell-init.el ends here -- cgit v1.2.3-54-g00ecf