1

首次启动emacs时是否可以只运行某些插件?

假设我使用 Python 和 Ruby 进行开发。所以我想让一个使用 Python 插件运行的 emacs 实例和另一个运行 Ruby 插件的实例。

我想象的是我可以从命令行调用 rb-emacs 或 py-emacs。

所以我认为我的部分解决方案在这里

http://stackoverflow.com/questions/2112256/emacs-custom-command-line-argument

然后我可以将带有自定义开关的emacs调用别名为上述之一

但是,我如何才能将特定插件与特定开关相关联?我在正确的轨道上吗?还是我应该完全做其他事情?

编辑:由于我的问题似乎并不清楚,我将尝试在这里重申。我不担心加载时间长。我担心插件之间的潜在冲突。我以前使用过 emacs,但只是在基本规模上。现在我想更深入地了解插件。虽然我不完全理解插件是如何工作的。

假设我有一个插件(或两个或三个,我不知道它可能是多少)用于我编码的每种语言。它们不会相互冲突吗?此外,我不想要该特定语言不需要的视图/窗口。

4

2 回答 2

2

对于每个 Emacs 实例,您只需要一个不同的 init 文件。然后,您可以创建 shell 别名以使用这些初始化文件打开 Emacs。

来自Emacs 维基

使用特定的 init 文件启动 Emacs:emacs -q -l ~/my-init-file.el

然后,您只需设置一个 shell 别名,例如:

alias rb-emacs=emacs -q -l ~/.rb-emacs-init.el

但是为什么要使用单独的 Emacs 进程呢?如果您担心启动时间,可以使用延迟加载包或Emacs Server与 Emacsclient。

于 2013-11-06T04:31:33.233 回答
1

我投票支持“完全做其他事情”,但我不能 100% 确定您要解决的问题是什么。

一般来说,您可以使用模式挂钩,eval-after-loadautoload来确保仅在需要时加载特定的 elisp 库。

如果您的问题是您强制加载所有内容并且时间过长,那么您需要更改代码以便仅在必要时加载内容。请参阅OptimizingEmacsStartup

如果您的问题是您正在为需要为不同项目具有不同值的变量设置全局值,那么您希望通过模式挂钩或使用目录局部变量为它们使用缓冲区局部值。

您要解决的问题是什么

于 2013-11-06T04:34:31.210 回答