Files
dot-emacs/lisp/init-smarter-than-emacs.el

106 lines
3.0 KiB
EmacsLisp
Raw Normal View History

;;; *** Smarter M-x Mode (smex)
;; This is really cool and I don't know how I could ever live without it.
;; (use-package smex
;; :config
;; (smex-initialize)
;; (global-set-key (kbd "M-x") 'smex)
;; (global-set-key (kbd "M-X") 'smex-major-mode-commands))
(use-package vertico
:init
(vertico-mode)
(require 'vertico-directory)
;; Different scroll margin
;; (setq vertico-scroll-margin 0)
;; Show more candidates
;; (setq vertico-count 20)
;; Grow and shrink the Vertico minibuffer
;; (setq vertico-resize t)
;; Optionally enable cycling for `vertico-next' and `vertico-previous'.
2023-05-17 18:43:44 +02:00
(setq vertico-cycle t)
:config
(defun tvd-vertico-jump-home()
"quickly go to home via ~ in minibuffer find-file
via [[http://whattheemacsd.com/setup-ido.el-02.html][whattheemacs.d]]"
(interactive)
(if (looking-back "/")
(progn
(backward-kill-sentence)
(insert "~/"))
(call-interactively 'self-insert-command)))
:bind (:map vertico-map
("~" . tvd-vertico-jump-home)
2023-05-17 18:43:44 +02:00
("RET" . #'vertico-directory-enter)
;; experimental, pressing tab on a match doesn't
;; complete it but show the next match, that way I avoid
;; being completed into nonsense matches
("TAB" . #'vertico-next)))
2023-05-17 18:43:44 +02:00
(use-package orderless
:init
;; Configure a custom style dispatcher (see the Consult wiki)
;; (setq orderless-style-dispatchers '(+orderless-consult-dispatch orderless-affix-dispatch)
;; orderless-component-separator #'orderless-escapable-split-on-space)
(setq completion-styles '(substring orderless basic)
orderless-matching-styles '(orderless-prefixes)
completion-category-defaults nil
completion-category-overrides '((file (styles partial-completion)))))
(use-package embark
:ensure t
:bind
(("C-." . embark-act) ;; pick some comfortable binding
2023-05-17 18:43:44 +02:00
("C-," . embark-dwim)) ;; good alternative: M-.
:init
;; Optionally replace the key help with a completing-read interface
(setq prefix-help-command #'embark-prefix-help-command)
;; Show the Embark target at point via Eldoc. You may adjust the Eldoc
;; strategy, if you want to see the documentation from multiple providers.
(add-hook 'eldoc-documentation-functions #'embark-eldoc-first-target)
;; (setq eldoc-documentation-strategy #'eldoc-documentation-compose-eagerly)
:config
;; Hide the mode line of the Embark live/completions buffers
(add-to-list 'display-buffer-alist
'("\\`\\*Embark Collect \\(Live\\|Completions\\)\\*"
nil
(window-parameters (mode-line-format . none)))))
2023-05-17 18:43:44 +02:00
;; test, replace isearch-forward-regexp first only.
;; dir: ivy/
(use-package swiper
:config
(setq ivy-wrap t)
(global-set-key "\C-s" 'swiper))
(provide 'init-smarter-than-emacs)
;;; init-smarter-than-emacs ends here