selectrum VS prescient.el

Compare selectrum vs prescient.el and see what are their differences.

selectrum

🔔 Better solution for incremental narrowing in Emacs. (by radian-software)

prescient.el

☄️ Simple but effective sorting and filtering for Emacs. (by radian-software)
Our great sponsors
  • WorkOS - The modern identity platform for B2B SaaS
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • SaaSHub - Software Alternatives and Reviews
selectrum prescient.el
33 13
736 591
0.0% 1.7%
0.0 5.7
over 1 year ago 2 months ago
Emacs Lisp Emacs Lisp
MIT License MIT License
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.

selectrum

Posts with mentions or reviews of selectrum. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-04-09.
  • Common "ivy-read"
    1 project | /r/emacs | 29 Apr 2023
    Selectrum's wiki has some basic info on completing-read: https://github.com/radian-software/selectrum/wiki/Tips-for-Creating-Commands
  • What packages do the cool kids use these days?
    4 projects | /r/emacs | 9 Apr 2023
    [1] https://github.com/radian-software/selectrum/issues/114
  • Selectrum now deprecated in favor of Vertico
    4 projects | /r/emacs | 28 Nov 2022
    I noticed over the weekend that the venerable Selectrum package made by Radon Rosborough has been deprecated in favor of Daniel Mendler's Vertico package.
  • How to make TRAMP faster?
    2 projects | /r/emacs | 3 Oct 2022
  • Sidekick is a Emacs package that provides information about a symbol inside a single window.
    4 projects | /r/emacs | 26 Jun 2022
    https://github.com/radian-software/selectrum is getting superceded by https://github.com/minad/vertico within just a year or two.
  • Straight.el: next-gen, purely functional package manager for the Emacs hacker
    5 projects | news.ycombinator.com | 22 Jun 2022
    I have been using straight for a while now and I think it is great! The ability to lazy load everything by default does a lot to make Emacs snappier (or at the very least, faster to boot). Being able to pull packages directly from git (be it local or a forge) makes package development a lot easier. raxod has a lot of really sleek, modern emacs packages that I would encourage everyone to check out, spectrum[0] and ctrf[1] in particular are really great as well.

    [0] https://github.com/radian-software/selectrum

  • Use Portage instead of package.el for managing Emacs packages
    9 projects | /r/Gentoo | 21 Mar 2022
    selectrum
  • Question: Error in post-command-hook
    2 projects | /r/emacs | 2 Dec 2021
    ;;https://github.com/raxod502/selectrum (defun force-debug (func &rest args) (condition-case e (apply func args) ((debug error) (signal (car e) (cdr e))))) (advice-add #'selectrum--minibuffer-post-command-hook :around #'force-debug) (selectrum-mode +1) ;; to make sorting and filtering more intelligent (selectrum-prescient-mode +1) ;; to save your command history on disk, so the sorting gets more ;; intelligent over time (prescient-persist-mode +1) (setq completion-styles '(orderless)) ;; Persist history over Emacs restarts (savehist-mode) ;; Optional performance optimization ;; by highlighting only the visible candidates. (setq orderless-skip-highlighting (lambda () selectrum-is-active)) (setq selectrum-highlight-candidates-function #'orderless-highlight-matches) (setq selectrum-prescient-enable-filtering nil) (selectrum-prescient-mode +1) (prescient-persist-mode +1) (use-package marginalia :ensure t :config (marginalia-mode)) (use-package embark :ensure t :bind (("C-." . embark-act) ;; pick some comfortable binding ("C-;" . embark-dwim) ;; good alternative: M-. ("C-h B" . embark-bindings)) ;; alternative for \describe-bindings' :init ;; Optionally replace the key help with a completing-read interface (setq prefix-help-command #'embark-prefix-help-command) :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))))) ;; Consult users will also want the embark-consult package. (use-package embark-consult :ensure t :after (embark consult) :demand t ; only necessary if you have the hook below ;; if you want to have consult previews as you move around an ;; auto-updating embark collect buffer :hook (embark-collect-mode . consult-preview-at-point-mode))`
  • Keybinding autocompletion / helper. Like in doom emacs.
    3 projects | /r/emacs | 4 Nov 2021
  • Requests for packages to add to NonGNU ELPA?
    6 projects | /r/emacs | 6 Oct 2021
    Selectrum and Prescient would be nice.

prescient.el

Posts with mentions or reviews of prescient.el. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2024-01-04.
  • Emacs Commands I Got by with for Years
    7 projects | news.ycombinator.com | 4 Jan 2024
    > It keeps a history for that session, but so far I have not found a way to maintain history between sessions.

    I use prescient.el [0] with prescient-persist-mode for this, though a quick look seems that SMEX also has something similar [1] but I have not used that so I can't say anything about how it works.

    [0]: https://github.com/radian-software/prescient.el

    [1]: https://github.com/nonsequitur/smex#persistence

  • Have an emacs completion setup that works really smoothly in practice? Requesting examples
    2 projects | /r/emacs | 8 Mar 2023
    I use `orderless` for completion, for which there are a lot of good suggestions here, and `prescient` for sorting. `prescient` also has completion functionality, but I disable it. From the README:
  • How to get helm like narrowing behavior with selectrum?
    2 projects | /r/emacs | 26 Oct 2022
    In general, you want either orderless or prescient, with my personal preference being the former.
  • How many of you switched from ivy/counsel or helm to vertico/consult?
    1 project | /r/emacs | 6 Sep 2022
    I was a selectrum/prescient user and I thought I'd miss it, but it turns out I don't. It turns out the standard savehist-mode has been close enough for me. The good news is that there's some work to turn prescient into a real completion-style so that it could be integrated easily.
  • Vertico extensions demo
    2 projects | /r/emacs | 9 Jan 2022
    If you like to use Prescient, Selectrum is nice.
  • Requests for packages to add to NonGNU ELPA?
    6 projects | /r/emacs | 6 Oct 2021
    Selectrum and Prescient would be nice.
  • Company: Suggestions are not sorted, typing "doc" lists "Audi.., Doc.." first and "document" at last
    1 project | /r/emacs | 13 Sep 2021
    The behavior that you describe is the one related to company-prescient 😊
  • My setup(Almost the powerful C++ IDE) and Consume so many resources in GUI.
    3 projects | /r/emacs | 1 Sep 2021
    ;; ;;;;;;;;;;;;;;;;; PACKAGES ;;;;;;;;;;;;;;;;; ;; ;; ;;;;;;;;;;;;;;;;; C++ ;;;;;;;;;;;;;;;;; ;; (require 'package) ;; (add-to-list 'package-archives '("melpa" . "http://melpa.org/packages/") t) (setq package-archives '( ("gnu" . "http://elpa.gnu.org/packages/") ;;("marmalade" . "https://marmalade-repo.org/packages/") ;;("milkmelpa" . "http://melpa.milkbox.net/packages/") ;;("stablemelpa" . "http://stable.melpa.org/packages/") ("melpa" . "https://melpa.org/packages/") ("org" . "http://orgmode.org/elpa/") ;;("melpa" . "http://melpa.org/packages/") )) (package-initialize) (setq package-selected-packages '( avy all-the-icons centaur-tabs ;;cmake-ide cmake-mode company company-prescient company-quickhelp company-quickhelp-terminal ;counsel ;counsel-projectile dashboard dashboard-ls dap-mode eldoc-box ;;eldoc-overlay flycheck flycheck-inline helm-lsp helm-swoop helm-xref highlight-indentation hydra iedit imenu-anywhere imenu-list indent-guide ivy all-the-icons-ivy-rich ivy-dired-history ivy-file-preview ivy-prescient ivy-rich ivy-xref lsp-ivy lsp-mode lsp-treemacs lsp-ui markdown-preview-mode neotree org-bullets page-break-lines powerline projectile quick-peek ;; workgroups2 ;; Beta selectrum selectrum-prescient smartparens swiper treemacs use-package which-key yasnippet )) (when (cl-find-if-not #'package-installed-p package-selected-packages) (package-refresh-contents) (mapc #'package-install package-selected-packages)) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; Dasboard (require 'dashboard) (dashboard-setup-startup-hook) (use-package dashboard :config (setq show-week-agenda-p t) (setq dashboard-items '((recents . 15) (agenda . 5))) (setq dashboard-set-heading-icons t) (setq dashboard-set-file-icons t) (setq dashboard-set-init-info t) (setq dashboard-startup-banner 3) (setq dashboard-set-navigator t) (dashboard-setup-startup-hook) ) ;; Set the title ;;(setq dashboard-banner-logo-title "Welcome to Emacs Dashboard") ;; Set the banner (setq dashboard-startup-banner [official]) ;; Value can be ;; 'official which displays the official emacs logo ;; 'logo which displays an alternative emacs logo ;; 1, 2 or 3 which displays one of the text banners ;; "path/to/your/image.png" or "path/to/your/text.txt" which displays whatever image/text you would prefer ;; Content is not centered by default. To center, set (setq dashboard-center-content t) (setq initial-buffer-choice (lambda () (get-buffer "*dashboard*"))) (setq dashboard-items '((recents . 5) (bookmarks . 5) (projects . 5) (agenda . 5) (registers . 5))) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; Detect files and modes (which-key-mode) (add-hook 'c-mode-hook 'lsp) (add-hook 'c++-mode-hook 'lsp) ;;(add-hook 'lisp-mode-hook 'lsp) (add-hook 'cmake-mode-hook 'company-mode) ;;(add-hook 'emacs-lisp-mode-hook 'lsp) ;; ;; Switch between Header and Source (add-hook 'c-mode-common-hook (lambda() (local-set-key (kbd "M-o") 'ff-find-other-file))) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; LSP + Company (setq gc-cons-threshold (* 100 1024 1024) read-process-output-max (* 1024 1024) treemacs-space-between-root-nodes nil company-idle-delay 0.0 ;; company-cmake t company-show-numbers nil company-minimum-prefix-length 1 company-dabbrev-other-buffers t company-dabbrev-code-other-buffers 'all company-dabbrev-code-everywhere t ; company-dabbrev-downcase nil ; company-transformers '(company-sort-prefer-same-case-prefix) ;; (company-sort-by-occurrence) ;; (company-sort-by-backend-importance) ;; (company-sort-prefer-same-case-prefix) lsp-idle-delay 0.1 ) ;; clangd is fast (require 'lsp-mode) ;;(add-hook 'XXX-mode-hook #'lsp) (add-hook 'emacs-lisp-mode #'lsp-deferred) (add-hook 'lisp-mode-hook #'lsp-deferred) ;;(add-hook 'prog-mode-hook #'lsp) ;; (add-hook 'js-mode-hook #'lsp) ;; (add-hook '-mode-hook #'lsp) (add-hook 'XXX-mode-hook #'lsp) (with-eval-after-load 'lsp-mode (add-hook 'lsp-mode-hook #'lsp-enable-which-key-integration) (require 'dap-cpptools) (yas-global-mode)) (require 'dap-cpptools) (setq dap-auto-configure-features '(sessions locals controls tooltip)) (eval-after-load 'company '(add-to-list 'company-backends '( company-capf company-bbdb company-files company-yasnippet company-cmake company-clang ))) (global-set-key (kbd "C-c c") 'company-complete-common) ;;company-capf company-bbdb company-files company-yasnippet company-dabbrev-code company-semantic company-cmake ;;;; company ;; (use-package company ;; :ensure ;; :defer 4 ;; :init (progn ;; (global-company-mode) ;; (setq company-global-modes '(not python-mode cython-mode sage-mode)) ;; ) ;; :config (progn ;; (setq company-tooltip-limit 20 ;; company-idle-delay .1 ;; company-echo-delay 0 ;; company-begin-commands '(self-insert-command) ;; company-transformers '(company-sort-by-occurrence) ;; company-selection-wrap-around t ;; company-idle-delay .1 ;; company-minimum-prefix-length 1 ;; company-selection-wrap-around t ;; company-dabbrev-downcase nil ;; ) ;; (bind-keys :map company-active-map ;; ("C-n" . company-select-next) ;; ("C-p" . company-select-previous) ;; ("C-d" . company-show-doc-buffer) ;; ("" . company-complete) ;; ("" . company-abort) ;; ) ;; ) ;; ) ;; (setq lsp-enable-snippet t) ;; (setq lsp-enable-symbol-highlighting t) (setq lsp-ui-doc-header t) (setq lsp-ui-doc-include-signature t) ;;(setq lsp-ui-doc-alignment 'window) ;;(setq lsp-ui-doc-glance t) (setq lsp-ui-doc-enable t) ;; (setq lsp-ui-doc-enable nil) (setq lsp-ui-doc-show-with-cursor t) (setq lsp-ui-doc-show-with-mouse t) ;;(setq lsp-ui-doc-text-scale-level 5) (setq lsp-ui-doc-position 'at-point) (setq lsp-lens-mode t) (setq lsp-lens-enable t) (setq lsp-headerline-breadcrumb-enable t) (setq lsp-ui-sideline-show-code-actions t) (setq lsp-ui-sideline-enable t) (setq lsp-ui-sideline-show-hover t) (setq lsp-modeline-code-actions-enable t) (setq lsp-diagnostics-provider :flycheck) (setq lsp-ui-sideline-enable t) (setq lsp-ui-sideline-show-diagnostics t) (setq lsp-eldoc-enable-hover t) (setq lsp-modeline-diagnostics-enable t) (setq lsp-signature-auto-activate t) ;; you could manually request them via `lsp-signature-activate` (setq lsp-signature-render-documentation t) ;;(setq lsp-completion-provider :company-mode) (setq lsp-completion-show-detail t) (setq lsp-completion-show-kind t) (require 'eldoc-box) (eldoc-box-hover-mode ) ;;(use-package eldoc-overlay ;; :ensure t ;; :init (eldoc-overlay-mode 1)) ;; (use-package ;; lsp-ui ;; :hook (lsp-mode . lsp-ui-mode) ;; :after flycheck ;; :bind (:map lsp-mode-map ;; ("" . lsp-find-references) ;; ("S-" . lsp-ui-peek-find-references) ;; ("" . lsp-find-definition) ;; ("S-" . lsp-find-declaration) ;; ("" . lsp-ui-doc-glance) ;; ("C-c f" . lsp-format-buffer) ;; ("C-" . lsp-ui-sideline-apply-code-actions) ;; ("M-p" . lsp-ui-find-prev-reference) ;; ("M-n" . lsp-ui-find-next-reference)) ;; :custom (lsp-ui-sideline-diagnostic-max-lines 3) ;; (lsp-ui-flycheck-enable t) ;; (lsp-ui-doc-enable nil) ;; (lsp-ui-sideline-ignore-duplicate t) ;; (lsp-ui-sideline-show-code-actions t) ;; (lsp-ui-sideline-show-hover t) ;; (lsp-ui-sideline-show-symbol nil) ;; (lsp-ui-sideline-actions-kind-regex ".*") ;; (lsp-clients-clangd-args '("--compile-commands-dir=build" ;; "--header-insertion=never") nil nil ;; "Customized with use-package lsp-clients") ;; :custom-face ;; ;; Make the sideline overlays less annoying ;; (lsp-ui-sideline-global ((t ;; (:background "444444")))) ;; (lsp-ui-sideline-symbol-info ((t ;; (:foreground "gray45" ;; :slant italic ;; :height 0.99))))) ;; No es compatible con helm ;(setq lsp-ui-peek-mode t) ;; (global-set-key (kbd " ") #'lsp-ui-imenu) ;; (setq lsp-ui-imenu-auto-refresh t) ;; ;;;;;;;;;;;;;;;;; Centaur Tabs ;;;;;;;;;;;;;;;;; ;; (require 'centaur-tabs) (centaur-tabs-mode t) (global-set-key (kbd "M-") 'centaur-tabs-backward) (global-set-key (kbd "M-") 'centaur-tabs-forward) (centaur-tabs-headline-match) ;(setq centaur-tabs-style "alternate") ;(setq centaur-tabs-style "box") (setq centaur-tabs-style "rounded") ;(setq centaur-tabs-style "bar") (setq centaur-tabs-set-icons t) (setq centaur-tabs-plain-icons t) (setq centaur-tabs-set-close-button nil) (setq centaur-tabs-set-modified-marker t) (centaur-tabs-change-fonts "arial" 160) (setq centaur-tabs-set-bar 'under) ;; Note: If you're not using Spacmeacs, in order for the underline to display ;; correctly you must add the following line: (setq x-underline-at-descent-line t) ;; ;;;;;;;;;;;;;;;;; Ido Mode ;;;;;;;;;;;;;;;;; ;; ;;(ido-mode t) ;; Do not use ;; ;;;;;;;;;;;;;;;;; Indent-Guide ;;;;;;;;;;;;;;;;; ;; (require 'indent-guide) (indent-guide-global-mode) (setq indent-guide-delay 0.1) ;(set-face-background 'indent-guide-face "dimwhite") ;;(set-face-background 'indent-guide-face "gray") ;;(set-face-background 'indent-guide-face "#000000") ;;(set-face-background 'indent-guide-face "blue") (setq indent-guide-recursive t) (setq indent-guide-char "|") ;; ;;;;;;;;;;;;;;;;; Neotree ;;;;;;;;;;;;;;;;; ;; ;(require 'neotree) ;(global-set-key (kbd " ") 'neotree-toggle) ;(setq-default neo-show-hidden-files t) ;(setq neo-smart-open t) ; (neotree-show) ;; ;;;;;;;;;;;;;;;;; treemacs ;;;;;;;;;;;;;;;;; ;; (use-package treemacs :ensure t :defer t :init (with-eval-after-load 'winum (define-key winum-keymap (kbd "M-0") #'treemacs-select-window)) :config (progn (setq treemacs-collapse-dirs (if treemacs-python-executable 3 0) treemacs-deferred-git-apply-delay 0.5 treemacs-directory-name-transformer #'identity treemacs-display-in-side-window t treemacs-eldoc-display t treemacs-file-event-delay 5000 treemacs-file-extension-regex treemacs-last-period-regex-value treemacs-file-follow-delay 0.2 treemacs-file-name-transformer #'identity treemacs-follow-after-init t treemacs-expand-after-init t treemacs-git-command-pipe "" treemacs-goto-tag-strategy 'refetch-index treemacs-indentation 2 treemacs-indentation-string " " treemacs-is-never-other-window nil treemacs-max-git-entries 5000 treemacs-missing-project-action 'ask treemacs-move-forward-on-expand nil treemacs-no-png-images nil treemacs-no-delete-other-windows t treemacs-project-follow-cleanup nil treemacs-persist-file (expand-file-name ".cache/treemacs-persist" user-emacs-directory) treemacs-position 'left treemacs-read-string-input 'from-child-frame treemacs-recenter-distance 0.1 treemacs-recenter-after-file-follow nil treemacs-recenter-after-tag-follow nil treemacs-recenter-after-project-jump 'always treemacs-recenter-after-project-expand 'on-distance treemacs-litter-directories '("/node_modules" "/.venv" "/.cask") treemacs-show-cursor nil treemacs-show-hidden-files t treemacs-silent-filewatch nil treemacs-silent-refresh nil treemacs-sorting 'alphabetic-asc treemacs-select-when-already-in-treemacs 'move-back treemacs-space-between-root-nodes t treemacs-tag-follow-cleanup t treemacs-tag-follow-delay 1.5 treemacs-user-mode-line-format nil treemacs-user-header-line-format nil treemacs-width 35 treemacs-width-is-initially-locked t treemacs-workspace-switch-cleanup nil) ;; The default width and height of the icons is 22 pixels. If you are ;; using a Hi-DPI display, uncomment this to double the icon size. ;;(treemacs-resize-icons 44) (treemacs-follow-mode t) (treemacs-filewatch-mode t) (treemacs-fringe-indicator-mode 'always) (pcase (cons (not (null (executable-find "git"))) (not (null treemacs-python-executable))) (`(t . t) (treemacs-git-mode 'deferred)) (`(t . _) (treemacs-git-mode 'simple))) (treemacs-hide-gitignored-files-mode nil)) :bind (:map global-map ("M-0" . treemacs-select-window) ("C-x t 1" . treemacs-delete-other-windows) (" " . treemacs) ("C-x t B" . treemacs-bookmark) ("C-x t C-t" . treemacs-find-file) ("C-x t M-t" . treemacs-find-tag))) (use-package treemacs-evil :after (treemacs evil) :ensure t) (use-package treemacs-projectile :after (treemacs projectile) :ensure t) (use-package treemacs-icons-dired :after (treemacs dired) :ensure t :config (treemacs-icons-dired-mode)) (use-package treemacs-magit :after (treemacs magit) :ensure t) (use-package treemacs-persp ;;treemacs-perspective if you use perspective.el vs. persp-mode :after (treemacs persp-mode) ;;or perspective vs. persp-mode :ensure t :config (treemacs-set-scope-type 'Perspectives)) (with-eval-after-load 'treemacs (define-key treemacs-mode-map [mouse-1] #'treemacs-single-click-expand-action)) ;; ;;;;;;;;;;;;;;;;; iMenu ;;;;;;;;;;;;;;;;; ;; (global-set-key (kbd " ") #'imenu-list-smart-toggle) ;; (setq imenu-list-focus-after-activation t) ;; (global-set-key (kbd "C-.") #'imenu-anywhere) ;(imenu-list-smart-toggle) (setq imenu-list-size 40) ;;(setq imenu-list-auto-resize t) ;;(setq imenu-max-item-length 40) ;;(setq imenu-min-item-length 30) ;; ;;;;;;;;;;;;;;;;; Projectile ;;;;;;;;;;;;;;;;; ;; (projectile-mode +1) ;; Recommended keymap prefix on macOS ;; (define-key projectile-mode-map (kbd "s-p") 'projectile-command-map) ;; Recommended keymap prefix on Windows/Linux (define-key projectile-mode-map (kbd "C-c p") 'projectile-command-map) ;;(setq projectile-project-search-path '("~/Workspace_SDD/emacs/")) ;; Usar ;; Projectile puede detectar proyectos con archivos cmake, git ..., pero tambien para "forzarlo" en la carpeta crea un archivo .projectile ;;(setq projectile-indexing-method 'native) (setq projectile-enable-caching t) (setq projectile-require-project-root t) (setq projectile-switch-project-action #'projectile-dired) (setq projectile-switch-project-action #'projectile-find-dir) (setq projectile-find-dir-includes-top-level t) ;; ;;;;;;;;;;;;;;;;; Powerline ;;;;;;;;;;;;;;;;; ;; ;; https://github.com/milkypostman/powerline (require 'powerline) (powerline-center-theme) (setq powerline-default-separator 'wave) ;(powerline-raw mode-line-mule-info nil 'l) ;;(setq powerline-arrow-shape 'arrow) ;; the default (setq powerline-arrow-shape 'curve) ;; give your mode-line curves ;;(setq powerline-arrow-shape 'arrow14) ;; best for small fonts ;; ParenMode. ;; https://www.emacswiki.org/emacs/ShowParenMode ;;(require 'paren) (show-paren-mode 1) (setq show-paren-delay 0) (setq show-paren-style 'mixed) ;; Smartparens (require 'smartparens-config) (smartparens-global-mode t) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; sample `helm' configuration use https://github.com/emacs-helm/helm/ for details ;; ;; helm from https://github.com/emacs-helm/helm ;; ;;(require 'helm) ;; (helm-mode) ;; (require 'helm-xref) ;; (define-key global-map [remap find-file] #'helm-find-files) ;; (define-key global-map [remap execute-extended-command] #'helm-M-x) ;; (define-key global-map [remap switch-to-buffer] #'helm-mini) ;; ;;(global-set-key (kbd "C-x r b") #'helm-filtered-bookmarks) ;; ;; ;; This Solves the error with Flycheck ;; (setq helm-always-two-windows t ;; helm-split-window-inside-p t) ;; ;; Locate the helm-swoop folder to your path ;; ;;(add-to-list 'load-path "~/.emacs.d/elisp/helm-swoop") ;; (require 'helm-swoop) ;; ;; Change the keybinds to whatever you like :) ;; (global-set-key (kbd "M-i") 'helm-swoop) ;; (global-set-key (kbd "M-I") 'helm-swoop-back-to-last-point) ;; (global-set-key (kbd "C-c M-i") 'helm-multi-swoop) ;; (global-set-key (kbd "C-x M-i") 'helm-multi-swoop-all) ;; ;; When doing isearch, hand the word over to helm-swoop ;; (define-key isearch-mode-map (kbd "M-i") 'helm-swoop-from-isearch) ;; ;; From helm-swoop to helm-multi-swoop-all ;; (define-key helm-swoop-map (kbd "M-i") 'helm-multi-swoop-all-from-helm-swoop) ;; ;; When doing evil-search, hand the word over to helm-swoop ;; ;; (define-key evil-motion-state-map (kbd "M-i") 'helm-swoop-from-evil-search) ;; ;; Instead of helm-multi-swoop-all, you can also use helm-multi-swoop-current-mode ;; (define-key helm-swoop-map (kbd "M-m") 'helm-multi-swoop-current-mode-from-helm-swoop) ;; ;; Move up and down like isearch ;; (define-key helm-swoop-map (kbd "C-r") 'helm-previous-line) ;; (define-key helm-swoop-map (kbd "C-s") 'helm-next-line) ;; (define-key helm-multi-swoop-map (kbd "C-r") 'helm-previous-line) ;; (define-key helm-multi-swoop-map (kbd "C-s") 'helm-next-line) ;; ;; Save buffer when helm-multi-swoop-edit complete ;; (setq helm-multi-swoop-edit-save t) ;; ;; If this value is t, split window inside the current window ;; (setq helm-swoop-split-with-multiple-windows nil) ;; ;; Split direcion. 'split-window-vertically or 'split-window-horizontally ;; (setq helm-swoop-split-direction 'split-window-vertically) ;; ;; If nil, you can slightly boost invoke speed in exchange for text color ;; (setq helm-swoop-speed-or-color nil) ;; ;; ;; Go to the opposite side of line from the end or beginning of line ;; (setq helm-swoop-move-to-line-cycle t) ;; ;; Optional face for line numbers ;; ;; Face name is `helm-swoop-line-number-face` ;; (setq helm-swoop-use-line-number-face t) ;; ;; If you prefer fuzzy matching ;; (setq helm-swoop-use-fuzzy-match t) ;; ;; If you would like to use migemo, enable helm's migemo feature ;; ;;(helm-migemo-mode 1) ;; ;; ;;;;;;;;;;;;;;;;; Ivy ;;;;;;;;;;;;;;;;; ;; (ivy-mode) (setq ivy-use-virtual-buffers t) (setq enable-recursive-minibuffers t) ;; enable this if you want `swiper' to use it ;; (setq search-default-mode #'char-fold-to-regexp) (global-set-key (kbd "C-x C-b") 'ibuffer-list-buffers) (global-set-key "\C-s" 'swiper) (global-set-key (kbd "C-c C-r") 'ivy-resume) ;;(global-set-key (kbd "") 'ivy-resume) (global-set-key (kbd "M-x") 'counsel-M-x) (global-set-key (kbd "C-x C-f") 'counsel-find-file) (global-set-key (kbd " f") 'counsel-describe-function) (global-set-key (kbd " v") 'counsel-describe-variable) (global-set-key (kbd " o") 'counsel-describe-symbol) (global-set-key (kbd " l") 'counsel-find-library) (global-set-key (kbd " i") 'counsel-info-lookup-symbol) (global-set-key (kbd " u") 'counsel-unicode-char) (global-set-key (kbd "C-c g") 'counsel-git) (global-set-key (kbd "C-c j") 'counsel-git-grep) (global-set-key (kbd "C-c k") 'counsel-ag) (global-set-key (kbd "C-x l") 'counsel-locate) (global-set-key (kbd "C-S-o") 'counsel-rhythmbox) (define-key minibuffer-local-map (kbd "C-r") 'counsel-minibuffer-history) ;; ;; ;; Ivy rich (require 'ivy-rich) (all-the-icons-ivy-rich-mode 1) (ivy-rich-mode 1) (setcdr (assq t ivy-format-functions-alist) #'ivy-format-function-line) (ivy-rich-modify-columns 'ivy-switch-buffer '((ivy-rich-switch-buffer-size (:align right)) (ivy-rich-switch-buffer-major-mode (:width 20 :face error)))) ;; ;; ;; Ivy icons ;; Whether display the icons (setq all-the-icons-ivy-rich-icon t) ;; Whether display the colorful icons. ;; It respects `all-the-icons-color-icons'. (setq all-the-icons-ivy-rich-color-icon t) ;; The icon size (setq all-the-icons-ivy-rich-icon-size 1.0) ;; Whether support project root (setq all-the-icons-ivy-rich-project t) ;; Definitions for ivy-rich transformers. ;; See `ivy-rich-display-transformers-list' for details." ;; all-the-icons-ivy-rich-display-transformers-list ;; Slow Rendering ;; If you experience a slow down in performance when rendering multiple icons simultaneously, ;; you can try setting the following variable (setq inhibit-compacting-font-caches t) ;; M-? ;; ;; Ivy xref (require 'ivy-xref) ;; xref initialization is different in Emacs 27 - there are two different ;; variables which can be set rather than just one (when (>= emacs-major-version 27) (setq xref-show-definitions-function #'ivy-xref-show-defs)) ;; Necessary in Emacs <27. In Emacs 27 it will affect all xref-based ;; commands other than xref-find-definitions (e.g. project-find-regexp) ;; as well (setq xref-show-xrefs-function #'ivy-xref-show-xrefs) ;; Ivy history (require 'savehist) (add-to-list 'savehist-additional-variables 'ivy-dired-history-variable) (savehist-mode 1) ;; ;; or if you use desktop-save-mode ;;(add-to-list 'desktop-globals-to-save 'ivy-dired-history-variable) (with-eval-after-load 'dired (require 'ivy-dired-history) ;; if you are using ido,you'd better disable ido for dired ;; (define-key (cdr ido-minor-mode-map-entry) [remap dired] nil) ;in ido-setup-hook (define-key dired-mode-map "," 'dired)) ;; ;; Selectrum (selectrum-mode +1) ;; to make sorting and filtering more intelligent (selectrum-prescient-mode +1) ;; to save your command history on disk, so the sorting gets more ;; intelligent over time (prescient-persist-mode +1) ;; ;; ;; Prescient ;; https://github.com/raxod502/prescient.el (ivy-prescient-mode) (company-prescient-mode) ;;(selectrum-prescient-mode) ;; ;;;;;;;;;;;;;;;;; Flycheck ;;;;;;;;;;;;;;;;; ;; ;; (require 'flycheck) ;; (add-hook 'after-init-hook #'global-flycheck-mode) ;; (global-flycheck-mode) ;; (autoload 'flycheck "flycheck-list-errors") ;; ;; Flycheck inline ;; (with-eval-after-load 'flycheck ;; (add-hook 'flycheck-mode-hook #'flycheck-inline-mode)) ;; ;; (setq flycheck-inline-display-function ;; ;; (lambda (msg pos err) ;; ;; (let* ((ov (quick-peek-overlay-ensure-at pos)) ;; ;; (contents (quick-peek-overlay-contents ov))) ;; ;; (setf (quick-peek-overlay-contents ov) ;; ;; (concat contents (when contents "\n") msg)) ;; ;; (quick-peek-update ov))) ;; ;; flycheck-inline-clear-function #'quick-peek-hide) ;; ;; (require 'flycheck-tip) ;; ;; (define-key your-prog-mode (kbd "C-c C-n") 'flycheck-tip-cycle) ;; ;(flycheck-tip-use-timer 'verbose) ;; ;;(setq flycheck-indication-mode 'left-fringe) ;; ;(setq flycheck-check-syntax-automatically '(mode-enabled )) ;; ;(with-eval-after-load 'flycheck (flycheck-pos-tip-mode)) ;; ;(setq flycheck-highlighting-mode 'columns) ;; ;(setq flycheck-highlighting-mode 'symbols) ;; (setq flycheck-highlighting-mode 'lines) ;; (add-to-list 'display-buffer-alist ;; `(,(rx bos "*Flycheck errors*" eos) ;; (display-buffer-reuse-window ;; display-buffer-in-side-window) ;; (side . bottom) ;; (reusable-frames . visible) ;; (window-height . 0.13))) ;; (add-hook 'flycheck-after-syntax-check-hook ;; (lambda () ;; (if flycheck-current-errors ;; (flycheck-list-errors) ;; (when (get-buffer "*Flycheck errors*") ;; (switch-to-buffer "*Flycheck errors*") ;; (kill-buffer (current-buffer)) ;; ;;;(delete-window) ;; )))) (provide 'Emacs_Packages) ;;; Emacs_Packages.el ends here
  • Prioritize certain completions in ivy
    2 projects | /r/emacs | 6 Aug 2021
    You could also try prescient.
  • [POLL] What's your ideal minibuffer completion UI?
    2 projects | /r/emacs | 3 May 2021
    show as I type as the results trigger memory... and for that selectrum. Use standard emacs completing-read, plugin prescient and you have history weightings .. of course, I am now more interested in the completion I have used ten times already, it's a no brainer when coding. It's a complete winner for me.

What are some alternatives?

When comparing selectrum and prescient.el you can also consider the following projects:

vertico - :dizzy: vertico.el - VERTical Interactive COmpletion

helm - Emacs incremental completion and selection narrowing framework

haskell-mode - Emacs mode for Haskell

consult - :mag: consult.el - Consulting completing-read

doom-emacs - An Emacs framework for the stubborn martian hacker [Moved to: https://github.com/doomemacs/doomemacs]

org-roam - Rudimentary Roam replica with Org-mode

icomplete-vertical - Global Emacs minor mode to display icomplete candidates vertically

ivy-rich - More friendly interface for ivy.

swiper - Ivy - a generic completion frontend for Emacs, Swiper - isearch with an overview, and more. Oh, man!

powerline - emacs powerline