     elisp-slime-nav
     eldoc
     evil
+    evil-anzu
     evil-args
     evil-exchange
     evil-iedit-state

    :config
    (spacemacs|diminish aggressive-indent-mode " Ⓘ" " I")))

(defun spacemacs/init-anzu ()
  (use-package anzu
    :init
    (global-anzu-mode t)
    :config
    (progn
      (spacemacs|hide-lighter anzu-mode)

      (defun spacemacs/anzu-update-mode-line (here total)
        "Custom update function which does not propertize the status."
        (when anzu--state
          (let ((status (cl-case anzu--state
                          (search (format "(%s/%d%s)"
                                          (anzu--format-here-position here total)
                                          total (if anzu--overflow-p "+" "")))
                          (replace-query (format "(%d replace)" total))
                          (replace (format "(%d/%d)" here total)))))
            status)))

      (defvar spacemacs-anzu-timer nil
        "The current timer for ephemeral anzu display.")
      (defun spacemacs/anzu-ephemeral-display ()
        "Show anzu status for a limited amount of time."
        (interactive)
        (setq spacemacs-anzu-timer nil)
        (anzu--reset-mode-line))
      (defun spacemacs/anzu-evil-search (arg func)
        "Show anzu status when pressing `n` or `N`"
        (anzu--cons-mode-line-search)
        (funcall func arg)
        (let ((query (if evil-regexp-search
                         (car-safe regexp-search-ring)
                       (car-safe search-ring))))
          (anzu--update query))
        (if spacemacs-anzu-timer (cancel-timer spacemacs-anzu-timer))
        (setq spacemacs-anzu-timer
              (run-at-time "2 sec" nil 'spacemacs/anzu-ephemeral-display)))
      (evil-define-command spacemacs/anzu-evil-search-next (arg)
        "Show anzu status when executing evil-search-next"
        :repeat ignore
        (interactive "P")
        (spacemacs/anzu-evil-search arg 'evil-search-next))
      (evil-define-command spacemacs/anzu-evil-search-previous (arg)
        "Show anzu status when executing evil-search-previous"
        :repeat ignore
        (interactive "P")
        (spacemacs/anzu-evil-search arg 'evil-search-previous))
      ;; (define-key evil-normal-state-map "n" 'spacemacs/anzu-evil-search-next)
      ;; (define-key evil-normal-state-map "N" 'spacemacs/anzu-evil-search-previous)
      (define-key evil-motion-state-map "n" 'spacemacs/anzu-evil-search-next)
      (define-key evil-motion-state-map "N" 'spacemacs/anzu-evil-search-previous)

      (setq anzu-search-threshold 1000
            anzu-cons-mode-line-p nil
            anzu-mode-line-update-function 'spacemacs/anzu-update-mode-line))))

(defun spacemacs/init-auto-complete ()
  (use-package auto-complete

    ace-jump-mode
    ag
    aggressive-indent
    async
    auto-complete
    auto-complete-clang
