61 lines
1.6 KiB
EmacsLisp
61 lines
1.6 KiB
EmacsLisp
;;; search-replace.el --- Configuration for searching and replacing -*- lexical-binding: t; -*-
|
|
;;; Commentary:
|
|
;;; Code:
|
|
|
|
(defun user--search-replace-config ()
|
|
"Initialize Emacs search and replace."
|
|
(validate-setq
|
|
;; Highlight all visible matches.
|
|
search-highlight t
|
|
query-replace-highlight t
|
|
;; Perform certain commands only on the marked region.
|
|
transient-mark-mode t)
|
|
|
|
;;; (Bindings) ;;;
|
|
;; Use regular expression searches by default.
|
|
(user/bind-key-global :basic :search-forward 'isearch-forward-regexp)
|
|
(user/bind-key-global :basic :search-backward 'isearch-backward-regexp)
|
|
(user/bind-key-global :basic :search-files 'find-grep)
|
|
|
|
;;; (Packages) ;;;
|
|
(use-package visual-regexp
|
|
:defer
|
|
:bind* (([remap query-replace-regexp] . vr/query-replace)
|
|
([remap replace-regexp] . vr/replace)))
|
|
|
|
(use-package replace-with-inflections
|
|
:bind (:map search-map
|
|
("n" . query-replace-names-with-inflections)))
|
|
|
|
(use-package anzu
|
|
:defer
|
|
:diminish anzu-mode
|
|
:config
|
|
(global-anzu-mode t))
|
|
|
|
(use-package grep
|
|
:defer
|
|
:config
|
|
(validate-setq
|
|
;; Highlight matches when using grep.
|
|
grep-highlight-matches t)
|
|
|
|
(when (eq system-type 'darwin)
|
|
(-when-let (gnu-find (executable-find "gfind"))
|
|
(validate-setq find-program gnu-find)))
|
|
(-when-let (gnu-xargs (executable-find "gxargs"))
|
|
(validate-setq xargs-program gnu-xargs))
|
|
|
|
(use-package wgrep
|
|
:defer
|
|
:config
|
|
(use-package wgrep-helm)
|
|
(use-package wgrep-ag
|
|
:if (executable-find "ag")))))
|
|
|
|
(user--search-replace-config)
|
|
|
|
|
|
(provide 'ux/search-replace)
|
|
;;; search-replace.el ends here
|