Emacs 为什么可以';加载定义函数的文件后,我是否调用该函数?

Emacs 为什么可以';加载定义函数的文件后,我是否调用该函数?,emacs,Emacs,我正在尝试为VHDL代码定制Emacs,其中一个重要部分是高效的代码完成。我对Emacs没有太多的经验,但直到现在我能够毫无问题地定义快捷方式和函数。经过快速搜索,我找到了它,并想尝试一下 所以我下载了这个文件,它是一个包含所有代码的单一Elisp文件。我尝试了许多与我以前的定制很好配合的东西: load从init.el文件、文件上的M-x eval buffer加载文件,等等 尽管我做了很多努力,但我无法调用文件中定义的函数,而且它们甚至不能在迷你缓冲区中使用completion来显示。奇怪的

我正在尝试为VHDL代码定制Emacs,其中一个重要部分是高效的代码完成。我对Emacs没有太多的经验,但直到现在我能够毫无问题地定义快捷方式和函数。经过快速搜索,我找到了它,并想尝试一下

所以我下载了这个文件,它是一个包含所有代码的单一Elisp文件。我尝试了许多与我以前的定制很好配合的东西:
load
init.el
文件、文件上的
M-x eval buffer
加载文件,等等

尽管我做了很多努力,但我无法调用文件中定义的函数,而且它们甚至不能在迷你缓冲区中使用completion来显示。奇怪的是,当我
M-x描述函数时(在没有完成的情况下键入函数名),会出现一个文档缓冲区,因此Emacs肯定知道这些函数

我的问题的一个具体例子是:当我
M-x vhdl capf main
时,除了回声区域中的声音
[不匹配]
外,什么都不会发生


所以我迷路了,这是一个可怕的头痛。此文件与我的其他配置文件似乎没有什么不同,但它不起作用…

这些不是交互式函数,因此不能使用
M-x
调用它们。交互函数是以
(Interactive)
规范作为其主体中的第一种形式定义的。尝试
M-:
(vhdl capf启用)
并重新加载vhdl缓冲区(您可以将其添加到钩子中)@jenesaisquoi oh。。。真不敢相信我花了这么多时间在这上面。。。显然,我没有正确理解
interactive
。我尝试了
M-:(vhdl capf enable)
并且
vhdl capf main
已添加到
完成点函数
变量中,但完成不起作用,出现以下消息:
符号的函数定义无效:first
。你能帮我吗?非常感谢您的帮助这不是我使用过的软件包,但是
first
cl.el
中是一个不推荐使用的函数(只是
car
的别名)。那么,假设您给了
M-:
(require'cl)
一个快照。您是否按照回购页面上的说明安装并配置了compnay模式或其他一些完成框架?vahl capf不是一个完成解决方案,它是一个支持模糊完成(如公司模式或自动完成)的完成框架的附加后端。@TimX不,我没有,我以为它是独立的。我会检查自动完成。我没有对它进行广泛的测试,但它似乎在没有安装auto complete或类似功能的情况下工作。这些功能不是交互式功能,因此不能使用
M-x
调用它们。交互函数是以
(Interactive)
规范作为其主体中的第一种形式定义的。尝试
M-:
(vhdl capf启用)
并重新加载vhdl缓冲区(您可以将其添加到钩子中)@jenesaisquoi oh。。。真不敢相信我花了这么多时间在这上面。。。显然,我没有正确理解
interactive
。我尝试了
M-:(vhdl capf enable)
并且
vhdl capf main
已添加到
完成点函数
变量中,但完成不起作用,出现以下消息:
符号的函数定义无效:first
。你能帮我吗?非常感谢您的帮助这不是我使用过的软件包,但是
first
cl.el
中是一个不推荐使用的函数(只是
car
的别名)。那么,假设您给了
M-:
(require'cl)
一个快照。您是否按照回购页面上的说明安装并配置了compnay模式或其他一些完成框架?vahl capf不是一个完成解决方案,它是一个支持模糊完成(如公司模式或自动完成)的完成框架的附加后端。@TimX不,我没有,我以为它是独立的。我会检查自动完成。我没有对它进行广泛的测试,但它似乎在没有安装auto complete或类似产品的情况下工作。