KJ
b9afc66ee2
This config is not necessary anymore because now corfu make the same and for now is the preferred option for me.
144 lines
4.4 KiB
EmacsLisp
144 lines
4.4 KiB
EmacsLisp
;;; init-minibuffer.el --- Ayuditas y autocompletado del minibufer -*- lexical-binding: t -*-
|
|
|
|
;; Author: kj <webmaster@outcontrol.net>
|
|
;; URL: https://git.kj2.me/kj/confi-emacs-actual
|
|
|
|
;;; Commentary:
|
|
|
|
;; Aquí se encuentran todos los paquetes que tienen como
|
|
;; objetivo mejorar el minibuffer de Emacs.
|
|
|
|
;;; Code:
|
|
|
|
;; Autocompletado y sugerencias para el minibuffer
|
|
(use-package counsel
|
|
:defer t
|
|
:straight t
|
|
:diminish ivy-mode counsel-mode
|
|
:bind (("C-s" . swiper-isearch)
|
|
("C-r" . counsel-rg)
|
|
("M-x" . counsel-M-x)
|
|
("<menu>" . counsel-M-x)
|
|
|
|
;; ("C-c C-r" . ivy-resume)
|
|
;; ("C-c v p" . ivy-push-view)
|
|
;; ("C-c v o" . ivy-pop-view)
|
|
;; ("C-c v ." . ivy-switch-view)
|
|
|
|
:map counsel-mode-map
|
|
([remap swiper] . counsel-grep-or-swiper)
|
|
([remap swiper-backward] . counsel-grep-or-swiper-backward)
|
|
([remap dired] . counsel-dired)
|
|
([remap set-variable] . counsel-set-variable)
|
|
([remap insert-char] . counsel-unicode-char)
|
|
([remap recentf-open-files] . counsel-recentf)
|
|
([remap org-capture] . counsel-org-capture)
|
|
([remap jump-to-register] . counsel-register)
|
|
|
|
:map ivy-minibuffer-map
|
|
("C-w" . ivy-yank-word)
|
|
("<tab>" . ivy-partial)
|
|
("<escape>" . minibuffer-keyboard-quit)
|
|
|
|
:map counsel-find-file-map
|
|
("C-h" . counsel-up-directory)
|
|
|
|
:map swiper-map
|
|
("M-%" . swiper-query-replace)
|
|
)
|
|
|
|
:hook ((after-init . ivy-mode)
|
|
(ivy-mode . counsel-mode))
|
|
:init
|
|
(setq enable-recursive-minibuffers t) ; Allow commands in minibuffers
|
|
|
|
(setq ivy-height 12
|
|
ivy-use-selectable-prompt t
|
|
ivy-use-virtual-buffers t ; Enable bookmarks and recentf
|
|
ivy-fixed-height-minibuffer t
|
|
ivy-count-format "(%d/%d) "
|
|
ivy-on-del-error-function #'ignore
|
|
ivy-initial-inputs-alist nil)
|
|
|
|
;; Use orderless regex strategy
|
|
(setq ivy-re-builders-alist '((t . ivy--regex-ignore-order)))
|
|
|
|
;; Set minibuffer height for different commands
|
|
(setq ivy-height-alist '((counsel-evil-registers . 5)
|
|
(counsel-yank-pop . 8)
|
|
(counsel-git-log . 4)
|
|
(swiper . 15)
|
|
(counsel-projectile-ag . 15)
|
|
(counsel-projectile-rg . 15)))
|
|
|
|
|
|
(setq swiper-action-recenter t)
|
|
|
|
(setq counsel-find-file-at-point t
|
|
counsel-preselect-current-file t
|
|
counsel-yank-pop-separator "\n────────\n")
|
|
(add-hook 'counsel-grep-post-action-hook #'recenter)
|
|
|
|
;; Use the faster search tools
|
|
(when (executable-find "rg")
|
|
(setq counsel-grep-base-command "rg -S --no-heading --line-number --color never '%s' '%s'"))
|
|
(when (executable-find "fd")
|
|
(setq counsel-fzf-cmd
|
|
"fd --type f --hidden --follow --exclude .git --color never '%s'"))
|
|
|
|
)
|
|
|
|
;; Integración entre projectile y counsel
|
|
(use-package counsel-projectile
|
|
:defer t
|
|
:straight t
|
|
:bind*
|
|
("C-x p" . counsel-projectile)
|
|
:hook (counsel-mode . counsel-projectile-mode)
|
|
:init (setq counsel-projectile-grep-initial-input '(ivy-thing-at-point)))
|
|
|
|
;; Autocompletado, sugerencias y menú de búsqueda mejorados (este paquete incluye counsel y swiper)
|
|
(use-package ivy
|
|
:defer t
|
|
:straight t
|
|
:hook (after-init . ivy-mode)
|
|
:config
|
|
(setq ivy-use-virtual-buffers nil))
|
|
|
|
;; Ivy pero con más detalles en pantalla
|
|
(use-package ivy-rich
|
|
:defer t
|
|
:straight t
|
|
:ensure t
|
|
:hook ((counsel-projectile-mode . ivy-rich-mode) ; MUST after `counsel-projectile'
|
|
(ivy-rich-mode . ivy-rich-project-root-cache-mode)
|
|
(ivy-rich-mode . (lambda ()
|
|
"Use abbreviate in `ivy-rich-mode'."
|
|
(setq ivy-virtual-abbreviate
|
|
(or (and ivy-rich-mode 'abbreviate) 'name)))))
|
|
:init
|
|
;; For better performance
|
|
(setq ivy-rich-parse-remote-buffer nil))
|
|
|
|
;; nerd-icons en ivy
|
|
(use-package nerd-icons-ivy-rich
|
|
:defer t
|
|
:straight t
|
|
:ensure t
|
|
:hook (after-init . nerd-icons-ivy-rich-mode))
|
|
|
|
;; nerd-icons en ibuffer
|
|
(use-package nerd-icons-ibuffer
|
|
:straight t
|
|
:defer t
|
|
:hook (ibuffer-mode . nerd-icons-ibuffer-mode))
|
|
|
|
;; Ordenar los comandos usados en M-x (por uso y luego alfabéticamente)
|
|
(use-package smex
|
|
:straight t
|
|
:defer t
|
|
:after (counsel))
|
|
|
|
(provide 'init-minibuffer)
|
|
;;; init-minibuffer.el ends here
|