(use-package ivy :diminish (ivy-mode . "") :init (ivy-mode 1) ; globally at startup :bind (:map ivy-minibuffer-map ("TAB" . ivy-alt-done)) :config (setq ivy-use-virtual-buffers t) (setq ivy-height 20) (setq ivy-count-format "%d/%d ") (setq ivy-re-builders-alist '((swiper . ivy--regex-plus) (t . ivy--regex-fuzzy))) ) ;; Override the basic Emacs commands (use-package counsel :bind* ; load when pressed (("M-x" . counsel-M-x) ("C-s" . swiper) ("C-x C-f" . counsel-find-file) ("C-x C-r" . counsel-recentf) ; search for recently edited ("C-c g" . counsel-git) ; search for files in git repo ("C-c j" . counsel-git-grep) ; search for regexp in git repo ("C-c /" . counsel-ag) ; Use ag for regexp ("C-x l" . counsel-locate) ("C-x C-f" . counsel-find-file) (" f" . counsel-describe-function) (" v" . counsel-describe-variable) (" l" . counsel-find-library) (" i" . counsel-info-lookup-symbol) (" u" . counsel-unicode-char) ("C-c C-r" . ivy-resume))) ; Resume last Ivy-based completion (provide 'init-ivy)