 
 (use-package evil-anzu
   :defer t
+  :init
+  ;; evil-anzu is strangely slow on startup. Byte compiling doesn't help. We use
+  ;; this to lazy load it instead.
+  (defun doom*evil-search (&rest _)
+    (require 'evil-anzu)
+    (advice-remove 'evil-ex-start-search 'doom*evil-search))
+  (advice-add 'evil-ex-start-search :before 'doom*evil-search)
   :config
   (setq anzu-cons-mode-line-p nil
         anzu-minimum-input-length 1

  (add-hook! isearch-mode     (setq echo-keystrokes 0))
  (add-hook! isearch-mode-end (setq echo-keystrokes 0.02))

  (after! evil-snipe
    (def-repeat! evil-snipe-f evil-snipe-repeat evil-snipe-repeat-reverse)
    (def-repeat! evil-snipe-F evil-snipe-repeat evil-snipe-repeat-reverse)
    (def-repeat! evil-snipe-t evil-snipe-repeat evil-snipe-repeat-reverse)
    (def-repeat! evil-snipe-T evil-snipe-repeat evil-snipe-repeat-reverse)
    (def-repeat! evil-snipe-s evil-snipe-repeat evil-snipe-repeat-reverse)
    (def-repeat! evil-snipe-S evil-snipe-repeat evil-snipe-repeat-reverse)
    (def-repeat! evil-snipe-x evil-snipe-repeat evil-snipe-repeat-reverse)
    (def-repeat! evil-snipe-X evil-snipe-repeat evil-snipe-repeat-reverse))
  (after! evil-visualstar
    (def-repeat! evil-visualstar/begin-search-forward
      evil-ex-search-next evil-ex-search-previous)
    (def-repeat! evil-visualstar/begin-search-backward
      evil-ex-search-previous evil-ex-search-next))
  (def-repeat! evil-ex-search-next evil-ex-search-next evil-ex-search-previous)
  (def-repeat! evil-ex-search-previous evil-ex-search-next evil-ex-search-previous)
  (def-repeat! evil-ex-search-forward evil-ex-search-next evil-ex-search-previous)

  :config
  (evil-snipe-mode 1)
  (evil-snipe-override-mode 1)

  (define-key evil-snipe-parent-transient-map (kbd "C-;") 'doom/evil-snipe-easymotion)

  (def-repeat! evil-snipe-f evil-snipe-repeat evil-snipe-repeat-reverse)
  (def-repeat! evil-snipe-F evil-snipe-repeat evil-snipe-repeat-reverse)
  (def-repeat! evil-snipe-t evil-snipe-repeat evil-snipe-repeat-reverse)
  (def-repeat! evil-snipe-T evil-snipe-repeat evil-snipe-repeat-reverse)
  (def-repeat! evil-snipe-s evil-snipe-repeat evil-snipe-repeat-reverse)
  (def-repeat! evil-snipe-S evil-snipe-repeat evil-snipe-repeat-reverse)
  (def-repeat! evil-snipe-x evil-snipe-repeat evil-snipe-repeat-reverse)
  (def-repeat! evil-snipe-X evil-snipe-repeat evil-snipe-repeat-reverse))

(use-package evil-surround
  :commands (global-evil-surround-mode
