void function vertico-mode

环境:

  • Archlinux
  • emacs 30

重现步骤:

  1. 运行 git clone https://github.com/minad/vertico
  2. emacs -Q
(add-to-list 'load-path "/path/to/vertico")
(require 'vertico)
(vertico-mode)
  1. 提示
Symbol’s function definition is void: vertico-mode

恳请大佬赐教

这个改成vertico的文件夹了么?

Thanks for your answering! :kissing_heart: 这个已经改过成自己的文件夹了

会不会是兼容性的问题? :thinking:

我感觉还是因为没加到 load-path 里。 C-h v 查看一下 load-path,看看 vertico 目录有没有在里边?

看了一下,确认是在里面的。

如果是没添加进去,不是会在 (require 'vertico) 这儿报错吗?

emm… 确实奇怪了。

toggle-debug-on-error 看看 trace 里有没有更详细的信息?

(vertico-mode 1) 试一下这个

*Backtrace*:

Debugger entered--Lisp error: (void-function vertico-mode)
  (vertico-mode)
  eval((vertico-mode) nil)
  elisp--eval-last-sexp(nil)
  eval-last-sexp(nil)
  funcall-interactively(eval-last-sexp nil)
  call-interactively(eval-last-sexp nil nil)
  command-execute(eval-last-sexp)

感谢大佬回答,但貌似仍然不行 :thinking:

C-x C-e 一下 (require 'vertico),或者直接进去 vertico.el eval-buffer , 再执行 M-x vertico-mode RET 应该是可以的?

是的 zsbd

你的实际配置如果和一楼一样,理论上是没有任何问题的。

另外题文无关,vertico的文件结构有两层,如果要用它的插件如vertico-buffer, vertico-mouse,子目录也是要加到load-path里的。

1 个赞

貌似找到原因了:

当 Emacs 的 load-path 变得太长时,可能会导致 require 函数无法正常工作。这是因为在加载文件时,Emacs 会按照 load-path 中列出的目录顺序进行搜索,如果该列表太长,则搜索时间会变得非常缓慢。

抱歉耽误了大佬的时间,之前还是我想当然了,直接通过 add-subdirs-to-load-path来设置load-path的。

不知道这种现象有什么办法来解决吗?

好奇你的 (length load-path) 是多少?

其实也不算长,107,但它就是崩了?

不知道你配置里这个,是不是执行于 (require 'vertico) 之后?

是在之前执行的

我的是15000多

1 个赞

你安装了eaf吗?

安装了zsbd