branch: elpa/evil commit 3ba76c1c1f6e8f0389d7bebbd220eefaca796da4 Author: Tom Dalziel <tom...@hotmail.com> Commit: Tom Dalziel <33435574+tomd...@users.noreply.github.com>
Ex-substitute: use last search's case-sensitivity --- evil-search.el | 3 +++ evil-tests.el | 8 ++++++++ 2 files changed, 11 insertions(+) diff --git a/evil-search.el b/evil-search.el index 9f283a29c9..e47a84ee83 100644 --- a/evil-search.el +++ b/evil-search.el @@ -1200,6 +1200,9 @@ is used. It is meant for :substitute commands with arguments." isearch-string (concat isearch-string "\\C"))) flags (remq ?r flags))) + (when (and using-prev-pattern + (not (evil-ex-pattern-ignore-case evil-ex-search-pattern))) + (setq pattern (concat pattern "\\C"))) ;; generate pattern (when pattern ;; Disable vim-style regexp conversion if using a previous pattern, because diff --git a/evil-tests.el b/evil-tests.el index 39f3c30964..724ea9b96e 100644 --- a/evil-tests.el +++ b/evil-tests.el @@ -8206,6 +8206,14 @@ golf h[o]>tel"))) "[x]xx AAA bar AAA bar AAA bar\nxxx foo bar foo bar foo bar" ("g&") "xxx AAA bar AAA bar AAA bar\n[x]xx AAA bar AAA bar AAA bar")) + (ert-info ("Substitute with last search, maintaining case sensitivty") + (evil-select-search-module 'evil-search-module 'evil-search) + (evil-test-buffer + "[a]lpha\nbravo\nbravo\ncharlie\nBravo\ndelta" + ("/\\Cbravo" [return]) + "alpha\n[b]ravo\nbravo\ncharlie\nBravo\ndelta" + (":%s//zulu" [return]) + "alpha\nzulu\n[z]ulu\ncharlie\nBravo\ndelta")) (ert-info ("Repeat magic multiple times") (let ((evil-magic 'very-magic) (evil-ex-search-vim-style-regexp t))