From 149da2b62045fde28cc712d11d04f611b0163896 Mon Sep 17 00:00:00 2001 From: Kyle Meyer Date: Mon, 12 Oct 2020 21:48:59 -0400 Subject: Switch to ivy I've tried it for a few months and quite happy with it. --- init.el | 177 +++++++++++++++++----------------------------------------------- 1 file changed, 46 insertions(+), 131 deletions(-) (limited to 'init.el') diff --git a/init.el b/init.el index 116b9ec..26e5d34 100644 --- a/init.el +++ b/init.el @@ -594,6 +594,28 @@ (after 'avy (add-to-list 'avy-dispatch-alist (cons ?w #'km/avy-action-copy-line)))) +(use-package ivy + :diminish ivy-mode + :config + (setq ivy-count-format "(%d/%d) ") + (setq ivy-use-virtual-buffers t) + (setq ivy-virtual-abbreviate 'abbreviate) + (setq ivy-wrap t) + + (define-key ivy-minibuffer-map (kbd "C-'") nil) + (define-key ivy-minibuffer-map (kbd "C-.") 'ivy-avy) + + (ivy-mode 1)) + +(use-package swiper + :bind (("M-s k" . swiper))) + +(use-package counsel + :chords (("jt" . counsel-buffer-or-recentf) + ("kx" . counsel-M-x)) + :bind (("C-c l" . counsel-imenu) + ("M-y" . counsel-yank-pop))) + ;;; Buffers and files @@ -742,8 +764,8 @@ ("t" . projectile-find-implementation-or-test-other-window)) :config (setq projectile-find-dir-includes-top-level t - projectile-completion-system 'helm projectile-use-git-grep t) + (setq projectile-completion-system 'ivy) (defun km/projectile-ignore-directory-p (name) (or (file-remote-p name) @@ -773,9 +795,15 @@ (def-projectile-commander-method ?c "Run project compilation command." (call-interactively 'projectile-compile-project)) + (def-projectile-commander-method ?d + "Find directory in project." + (projectile-find-dir)) (def-projectile-commander-method ?D "Find a project directory in other window." (call-interactively 'projectile-find-dir-other-window)) + (def-projectile-commander-method ?f + "Find project file in other window." + (call-interactively 'projectile-find-file)) (def-projectile-commander-method ?F "Find project file in other window." (call-interactively 'projectile-find-file-other-window)) @@ -788,6 +816,9 @@ (def-projectile-commander-method ?o "Display a project buffer in other window." (call-interactively 'projectile-display-buffer)) + (def-projectile-commander-method ?j + "Find tag in project." + (projectile-find-tag)) (def-projectile-commander-method ?O "Run multi-occur on project buffers." (projectile-multi-occur)) @@ -798,37 +829,7 @@ "Run grep on project." (call-interactively #'projectile-grep)) - (projectile-global-mode) - (require 'helm-projectile)) - -(use-package helm-projectile - :config - (bind-keys :map projectile-command-map - ("b" . helm-projectile-switch-to-buffer) - ("d" . helm-projectile-find-dir) - ("f" . helm-projectile-find-file) - ("F" . helm-projectile-find-file-in-known-projects) - ("j" . helm-etags-select) - ("p" . helm-projectile-switch-project) - ("r" . helm-projectile-recentf)) - (def-projectile-commander-method ?b - "Find project buffer." - (call-interactively 'helm-projectile-switch-to-buffer)) - (def-projectile-commander-method ?d - "Find directory in project." - (helm-projectile-find-dir)) - (def-projectile-commander-method ?f - "Open project file." - (helm-projectile-find-file)) - (def-projectile-commander-method ?j - "Find project tag." - (helm-etags-select nil)) - (def-projectile-commander-method ?l - "Run `helm-projectile-grep'." - (helm-projectile-grep)) - (def-projectile-commander-method ?p - "Switch project." - (helm-projectile-switch-project))) + (projectile-global-mode)) (use-package km-projectile :chords ("gp" . km/projectile-switch-project) @@ -860,7 +861,17 @@ (km/projectile-view-file-other-window)) (def-projectile-commander-method ?w "Save thing." - (call-interactively #'km/projectile-save-thing)))) + (call-interactively #'km/projectile-save-thing))) + :config + (after 'elisp-mode + (add-hook 'emacs-lisp-mode-hook + #'km/projectile-maybe-activate-xref-etags-mode)) + (after 'scheme + (add-hook 'scheme-mode-hook + #'km/projectile-maybe-activate-xref-etags-mode)) + (after 'python + (add-hook 'python-mode-hook + #'km/projectile-maybe-activate-xref-etags-mode))) ;;; Version control @@ -1292,104 +1303,6 @@ (after 'org (define-key km/org-prefix-map "." #'hydra-org-link-edit/body))) - -;;; Helm - -(use-package helm - :config - (setq helm-move-to-line-cycle-in-source t) - - (require 'km-helm) - (require 'helm-mode)) - -(use-package helm-config - :config - (global-set-key (kbd "C-x c") nil) - (customize-set-value 'helm-command-prefix-key "C-c h")) - -(use-package helm-buffers - :chords ("jt" . helm-mini)) - -(use-package helm-files - :chords ("jc" . helm-find-files) - :config - (setq helm-ff-newfile-prompt-p nil - helm-ff-file-name-history-use-recentf t - helm-ff-skip-boring-files t)) - -(use-package helm-tags - :config - (advice-add 'helm-etags-all-tag-files - :override - (lambda () - (--when-let (helm-etags-get-tag-file) - (list it))) - '((name . "helm-etags-just-project-tags")))) - -(use-package km-helm - :init - (after 'helm-files - (bind-keys :map helm-find-files-map - ("C-c ." . km/helm-visit-in-dired) - ("C-c b" . km/helm-find-file-below) - ("C-c x" . km/helm-ff-org-open-file) - ("C-c C-o" . km/helm-display-file))) - (after 'helm-locate - (bind-keys :map helm-generic-files-map - ("C-c ." . km/helm-visit-in-dired) - ("C-c b" . km/helm-find-file-below) - ("C-c x" . km/helm-ff-org-open-file) - ("C-c C-o" . km/helm-display-file))) - (after 'helm-buffers - (bind-keys :map helm-buffer-map - ("C-c b" . km/helm-display-buffer-below) - ("C-c C-o" . km/helm-display-buffer))) - :config - (after 'elisp-mode - (add-hook 'emacs-lisp-mode-hook #'km/helm-maybe-override-xref)) - (after 'scheme - (add-hook 'scheme-mode-hook #'km/helm-maybe-override-xref)) - (after 'python - (add-hook 'python-mode-hook #'km/helm-maybe-override-xref))) - -(use-package helm-mode - :diminish helm-mode - :config - (helm-mode 1) - - (add-to-list 'helm-mode-no-completion-in-region-in-modes 'message-mode)) - -(use-package helm-command - :chords ("kx" . helm-M-x)) - -(use-package helm-swoop - :init - (setq helm-swoop-pre-input-function (lambda () "")) - - (define-key search-map "k" #'helm-swoop)) - -(use-package helm-apropos - :bind ("C-h a" . helm-apropos)) - -(use-package helm-imenu - :bind ("C-c l" . helm-imenu)) - -(use-package helm-man - :init (define-key km/external-map "m" #'helm-man-woman)) - -(use-package helm-ring - :bind (("M-y" . helm-show-kill-ring) - ("C-x r i" . helm-register)) - :init - (define-key km/editing-map "m" #'helm-mark-ring)) - -(use-package helm-bookmark - :bind ("C-x r b" . helm-bookmarks)) - -(use-package helm-misc - :config - (define-key minibuffer-local-map (kbd "M-r") #'helm-minibuffer-history)) - ;;; Expansion @@ -1656,6 +1569,8 @@ x-select-enable-primary t)) (use-package man + :init + (define-key km/external-map "m" #'man) :config (setq Man-notify-method 'aggressive)) -- cgit v1.2.3