vertico 无法按照历史顺序显示候选项

环境:

  • Archlinux 最新版
  • Hyprland 0.49.0 built from branch at commit 9958d297641b5c84dcff93f9039d80a5ad37ab00 (version: bump to 0.49.0).
  • Emacs: “GNU Emacs 30.1 (build 1, x86_64-pc-linux-gnu, GTK+ Version 3.24.49, cairo version 1.18.4)”
  • vertico 最新版

在开启 savehist-mode 之后,vertico 不会读取文件打开历史、命令历史,而是以近乎无序的顺序显示候选项,不像之前一样把最近使用的放在最上面


配置文件

(require 'vertico)
(require 'marginalia)
(require 'orderless)
(require 'vertico-posframe)

(vertico-mode)				;; 使用vertico做为minibuffer中的补全框架
(marginalia-mode)			;; 使补全提示信息更详细
(vertico-posframe-mode 1)               ;; 在posframe中进行补全

(setq completion-styles '(orderless basic)
      completion-category-overrides '((file (styles basic partial-completion)))
      vertico-posframe-parameters
      '((left-fringe . 8)
        (right-fringe . 8))
      vertico-posframe-poshandler 'posframe-poshandler-frame-bottom-center
      consult-preview-key 'any)

(require 'savehist)
(setq-default history-length 1000
	      savehist-additional-variables '(extended-command-history
					      file-name-history
					      mark-ring
					      global-mark-ring
					      search-ring
					      regexp-search-ring)
	      savehist-autosave-interval 300)
(savehist-mode t)

通过 C-h v 做了一些检查:

  • savehist-mode: t
  • savehist-loaded: t
  • savehist-file: “~/.emacs.d/history”

附:所有eln、elc文件已删除

(setq vertico-sort-function 'vertico-sort-history-length-alpha)

2 个赞

感谢,原来这是最近才加的函数,我说怎么突然不能用了