diff --git a/modules/config/default/+evil-bindings.el b/modules/config/default/+evil-bindings.el index c08dad9db..3598dfe7b 100644 --- a/modules/config/default/+evil-bindings.el +++ b/modules/config/default/+evil-bindings.el @@ -704,7 +704,7 @@ ;;; s --- search (:prefix-map ("s" . "search") :desc "Search buffer" "b" - (cond ((featurep! :completion vertico) #'consult-line) + (cond ((featurep! :completion vertico) #'+default/search-buffer) ((featurep! :completion ivy) #'swiper) ((featurep! :completion helm) #'swiper)) :desc "Search all open buffers" "B" diff --git a/modules/config/default/autoload/search.el b/modules/config/default/autoload/search.el index 329043464..2077c47a6 100644 --- a/modules/config/default/autoload/search.el +++ b/modules/config/default/autoload/search.el @@ -26,12 +26,18 @@ If prefix ARG is set, prompt for a directory to search from." "Conduct a text search on the current buffer. If a selection is active, pre-fill the prompt with it." (interactive) - (call-interactively - (cond ((or (featurep! :completion helm) (featurep! :completion ivy)) + (cond ((or (featurep! :completion helm) (featurep! :completion ivy)) + (call-interactively (if (region-active-p) #'swiper-isearch-thing-at-point - #'swiper-isearch)) - ((featurep! :completion vertico) #'consult-line)))) + #'swiper-isearch))) + ((featurep! :completion vertico) + (if (region-active-p) + (let ((start (region-beginning)) + (end (region-end))) + (deactivate-mark) + (consult-line (buffer-substring-no-properties start end))) + (call-interactively #'consult-line))))) ;;;###autoload (defun +default/search-project (&optional arg)