diff --git a/hmModules/emacs/init.el b/hmModules/emacs/init.el
index 0056fdb..fa728b8 100644
--- a/hmModules/emacs/init.el
+++ b/hmModules/emacs/init.el
@@ -141,6 +141,12 @@
   (add-hook 'next-error-hook #'pulsar-pulse-line)
   )
 
+(use-package visual-replace
+  :defer t
+  :bind (("C-c r" . visual-replace)
+         :map isearch-mode-map
+         ("C-c r" . visual-replace-from-isearch)))
+
 (use-package clipetty
   :delight
   :hook (after-init . global-clipetty-mode))
diff --git a/packages/emacs/packages.nix b/packages/emacs/packages.nix
index 33122dd..af76056 100644
--- a/packages/emacs/packages.nix
+++ b/packages/emacs/packages.nix
@@ -184,6 +184,7 @@ let
           telega
           aggressive-indent
           mixed-pitch
+          visual-replace
           # org-re-reveal # FIXME very not nice hash mismatch when building
         ]
       )