From 12bbbedbca95289f8e2d63efba6a03c941fb94b9 Mon Sep 17 00:00:00 2001 From: MitchMarq42 Date: Sun, 28 Aug 2022 14:25:50 -0800 Subject: [PATCH] Properly handle backspace in minibuffer --- lisp/mitch-keybinds.el | 7 ------- lisp/mitch-packages.el | 16 +++++++++++++++- 2 files changed, 15 insertions(+), 8 deletions(-) diff --git a/lisp/mitch-keybinds.el b/lisp/mitch-keybinds.el index 648a648..ec30fcd 100644 --- a/lisp/mitch-keybinds.el +++ b/lisp/mitch-keybinds.el @@ -46,12 +46,5 @@ "r" (general-key "C-c C-v r") "s" 'eshell) - -;; broken -(general-define-key - :prefix-map 'minibuffer-mode-map - "DEL" 'backward-kill-word) - - (provide 'mitch-keybinds) ;;; mitch-keybinds.el ends here diff --git a/lisp/mitch-packages.el b/lisp/mitch-packages.el index 34ea0ae..3e7a7aa 100644 --- a/lisp/mitch-packages.el +++ b/lisp/mitch-packages.el @@ -189,7 +189,21 @@ This is taken from a website that I can't remember at the moment." :straight (:files (:defaults "extensions/vertico-mouse.el")) :custom (vertico-resize t) :config (vertico-mode) - (add-hook 'minibuffer-setup-hook 'turn-off-line-numbers)) + (add-hook 'minibuffer-setup-hook 'turn-off-line-numbers) + (defun backspace-in-minibuffer () + "If previous character is `/', kill to the previous `/'. +Otherwise, kill back 1 letter." + (interactive) + (if (= (string-to-char "/") (preceding-char)) + (progn + (delete-region (- (point) 1) + (search-backward "/" nil nil 2)) + (goto-char (1+ (point)))) + (backward-delete-char 1))) + :general + (general-define-key + :prefix-map 'minibuffer-mode-map + "DEL" 'backspace-in-minibuffer)) (use-feature vertico-mouse :straight vertico :after vertico