From 4c69647fc1970f8d03ed6f73322b958940f237fd Mon Sep 17 00:00:00 2001 From: condy Date: Sun, 17 Apr 2022 19:15:21 +0800 Subject: [PATCH] minibuffer: cc fix --- modes/minibuffer/evil-collection-minibuffer.el | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/modes/minibuffer/evil-collection-minibuffer.el b/modes/minibuffer/evil-collection-minibuffer.el index 879c896..e4a6997 100644 --- a/modes/minibuffer/evil-collection-minibuffer.el +++ b/modes/minibuffer/evil-collection-minibuffer.el @@ -52,6 +52,17 @@ it does not have a mode." ;; then it may conflict with other packages' if they do the same. (evil-insert 1)) +(evil-define-operator evil-collection-change-in-minibuffer + (beg end type register yank-handler delete-func) + "A version of `evil-change' that won't insert a new line on buffers without one." + (interactive "") + ;; If there was no new line before the change, there should be none after. + ;; Delete any new line that might have been inserted and ignore an error if + ;; one wasn't. + (let ((new-inserted (and (eq type 'line) (/= ?\n (char-before end))))) + (evil-change beg end type register yank-handler delete-func) + (when new-inserted (ignore-errors (delete-char 1))))) + ;;;###autoload (defun evil-collection-minibuffer-setup () "Initialize minibuffer for `evil'." @@ -61,6 +72,7 @@ it does not have a mode." minibuffer-local-completion-map minibuffer-local-must-match-map minibuffer-local-isearch-map)) + (evil-collection-define-key 'normal map "c" 'evil-collection-change-in-minibuffer) (evil-collection-define-key 'normal map (kbd "") 'abort-recursive-edit) (evil-collection-define-key 'normal map (kbd "RET") 'exit-minibuffer))