From 70e917d344f92c712a5b812ece5fa1a30a8eb687 Mon Sep 17 00:00:00 2001 From: bh Date: Fri, 19 Dec 2025 21:12:08 +0800 Subject: Fixed C-d in eshell --- config/eshell.el | 22 ++++++++++++++-------- init.el | 3 +++ 2 files changed, 17 insertions(+), 8 deletions(-) diff --git a/config/eshell.el b/config/eshell.el index 02ea970..740c560 100644 --- a/config/eshell.el +++ b/config/eshell.el @@ -12,6 +12,14 @@ eshell-kill-processes-on-exit t eshell-hist-ignoredups t) +;; Function to make C-d exit eshell (from Doom Emacs) +(defun my-eshell-quit-or-delete-char (arg) + "Delete a character (ahead of the cursor) or quit eshell if there's nothing to delete." + (interactive "p") + (if (and (eolp) (looking-back eshell-prompt-regexp nil)) + (eshell-life-is-too-much) + (delete-char arg))) + ;; History settings (setq eshell-history-size 100000 eshell-history-file-name (concat user-emacs-directory "eshell/history") @@ -188,14 +196,9 @@ ;; Emacs-style line navigation (define-key eshell-mode-map (kbd "C-a") 'eshell-bol) (define-key eshell-mode-map (kbd "C-e") 'end-of-line) - ;; C-d exits if line is empty, otherwise deletes character - (define-key eshell-mode-map (kbd "C-d") - (lambda () - (interactive) - (if (and (eolp) (looking-back eshell-prompt-regexp nil)) - (eshell-life-is-too-much) ;; Exit eshell - (delete-char 1))))) ;; Delete character - )) + ;; C-d exits eshell or deletes char (Doom Emacs implementation) + ;;(define-key eshell-mode-map (kbd "C-d") 'my-eshell-quit-or-delete-char))) + (define-key eshell-mode-map (kbd "C-d") 'eshell-life-is-too-much))) ;; ===================================== ;; Evil Integration @@ -205,6 +208,9 @@ ;; Start in insert mode (like terminal) (add-to-list 'evil-insert-state-modes 'eshell-mode) + ;; Bind C-d in evil insert state for eshell + (evil-define-key 'insert eshell-mode-map (kbd "C-d") 'my-eshell-quit-or-delete-char) + ;; Add eshell to evil-collection if available (with-eval-after-load 'evil-collection (evil-collection-eshell-setup))) diff --git a/init.el b/init.el index 35102da..eecbe3f 100644 --- a/init.el +++ b/init.el @@ -62,6 +62,8 @@ (scroll-bar-mode -1) (tooltip-mode -1) (blink-cursor-mode -1) +;;(fringe-mode 5) +;;(fringe-mode '(5 . 5)) (fringe-mode 0) ;; Disable startup messages and bell @@ -74,6 +76,7 @@ ;; Only show line numbers in text/code buffers, not special buffers (treemacs, magit, etc.) (add-hook 'prog-mode-hook 'display-line-numbers-mode) (add-hook 'text-mode-hook 'display-line-numbers-mode) +(add-hook 'fundamental-mode-hook 'display-line-numbers-mode) (setq display-line-numbers-type 'relative) ;; Relative line numbers for Evil mode (set-face-attribute 'line-number nil :foreground "#4fa8a8" ;; Softer cyan for line numbers -- cgit v1.2.3