Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/emacs/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在emacs中,如果函数没有';还没有定义吗?_Emacs_Elisp_Elpa - Fatal编程技术网

在emacs中,如果函数没有';还没有定义吗?

在emacs中,如果函数没有';还没有定义吗?,emacs,elisp,elpa,Emacs,Elisp,Elpa,我从ELPA安装了一些东西,即邪恶和彩虹分隔符 为了让它们在emacs加载时运行,我将设置如下内容: (evil-mode) (global-rainbow-delimiters-mode) 在我的init.el文件中 但是,因为我是从ELPA安装的,所以在我的init.el加载之后才会加载,所以这两个符号都是未定义的 据我所知,这也阻止我做类似的事情 (add-hook 'after-init-hook 'global-rainbow-delimiters-mode) 我怎样才能解决这个问

我从ELPA安装了一些东西,即邪恶和彩虹分隔符

为了让它们在emacs加载时运行,我将设置如下内容:

(evil-mode)
(global-rainbow-delimiters-mode)
在我的init.el文件中

但是,因为我是从ELPA安装的,所以在我的init.el加载之后才会加载,所以这两个符号都是未定义的

据我所知,这也阻止我做类似的事情

(add-hook 'after-init-hook 'global-rainbow-delimiters-mode)
我怎样才能解决这个问题


Postscript:这个问题实际上是由于我没有在init.el开始时调用
(package initialize)
,这将在正确的时间加载使用包安装的所有东西(EvillMode和rainbow定界符只是其中的两个)

您的
添加钩子
解决方案将起作用

在那里,
'global-rainbow-delimiters-mode
只是一个名称,它将在以后调用
addhook
时解析为函数,此时函数将存在


确实提到了这个方法,虽然它似乎把它当作最后的手段。

< p>您的代码>添加钩子< /C>解决方案将起作用。

在那里,
'global-rainbow-delimiters-mode
只是一个名称,它将在以后调用
addhook
时解析为函数,此时函数将存在


确实提到了这个方法,虽然它似乎把它当作最后的手段。

< p> AFAIU编译init文件不是一个好主意-但目前还没有相关。

您的钩子失败,因为它在读取init之后运行,但在加载内容之前运行。您需要一个函数在从ELPA加载后运行


加载后尝试eval

AFAIU编译init文件不是一个好主意,但到目前为止还没有相关内容

您的钩子失败,因为它在读取init之后运行,但在加载内容之前运行。您需要一个函数在从ELPA加载后运行


加载后尝试eval

您也可以使用
(软件包初始化)
提前初始化软件包。这将允许您不将所有代码放在一个钩子中。

您也可以使用
(package initialize)
提前初始化包。这将允许您不将所有代码放在一个钩子中。

确实如此。这似乎很奇怪,我想我已经试过了,但没用。也许我上次忘了用字节编译init文件了。这似乎很奇怪,我想我已经试过了,但没用。也许我上次忘记了字节编译init文件为什么编译init.el是个坏主意?我编译init.el已经很多年了。问题是,如果您进行了更改而忘记编译Emacs,那么将加载旧的字节编译版本,您可能会感到困惑,为什么它没有您的更改。我在startup和Shutdown中添加了钩子,询问我是否要编译init.el(如果它已更改),这样我就永远不会忘记这样做。为什么编译init.el是个坏主意?我编译init.el已经很多年了。问题是,如果您进行了更改而忘记编译Emacs,那么将加载旧的字节编译版本,您可能会感到困惑,为什么它没有您的更改。我在startup和shutdown中添加了钩子,询问我是否要编译init.el(如果它已更改),所以我永远不会忘记这样做。