diff options
| author | Tom Dalziel <tom_dl@hotmail.com> | 2024-06-03 14:24:28 +0200 |
|---|---|---|
| committer | Tom Dalziel <33435574+tomdl89@users.noreply.github.com> | 2024-06-03 16:54:50 +0200 |
| commit | 3ba76c1c1f6e8f0389d7bebbd220eefaca796da4 (patch) | |
| tree | 3f97421e93161bf668c68e7acf2f5e6ceef4371b | |
| parent | 9fada7828a1afadbec1f84675ce3c8e9729e1cdc (diff) | |
Ex-substitute: use last search's case-sensitivity
| -rw-r--r-- | evil-search.el | 3 | ||||
| -rw-r--r-- | evil-tests.el | 8 |
2 files changed, 11 insertions, 0 deletions
diff --git a/evil-search.el b/evil-search.el index 9f283a2..e47a84e 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 39f3c30..724ea9b 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)) |
