我多年来一直是vim用户,最近开始试用 emacs 。这个编辑器有很多可用的组件,比如邮件客户端,IRC客户端等。所有这些组件都需要一个包管理器来更新它们,并且通常可以更容易地处理它们。
在 vim 上有大量的插件管理器(如Vundle或病原体),不同的人使用不同的东西。
另一方面, emacs 包含最新版本的package.el
(开头很棒),但还有el-get
和package.el
包裹清单很短。
我应该坚持package.el
(并且可能使用marmalade扩展包列表)?或者我需要el-get
来进行理智的包管理吗?
答案 0 :(得分:6)
如果您使用的是最近的Emacs版本,请使用package.el
。并且将MELPA 添加到存储库列表。
此外,不所有"打包" (或库)需要一个包管理器来更新它们并使它们的处理更容易。有一个有用的Emacs Lisp代码世界没有"打包"并上传到package.el
存储库。
更重要的是,无论您是使用package.el
来检索还是"安装"包,你应该学习加载,字节编译和使用Emacs Lisp代码的基础知识。不要盲目地使用package.el
,而不了解Lisp代码。
"安装"的基础知识Lisp代码手动包括以下内容:
通常,您需要对所使用的库进行字节编译,以获得更好的性能。如果你这样做,请记住这个警告:
1a上。加载任何源文件(*.el
),这些文件定义了您使用的任何其他Lisp库所需的Lisp 宏。
1b中。然后是字节编译(宏定义库和)使用宏定义库的库。 这很重要。 最新版本的宏使用库可能需要最新版本的宏,如果您编译没有第一次加载最新的宏定义,那么你就会遇到麻烦。
将您使用的所有库放在load-path
中的目录中。换句话说:在init文件(load-path
)中将变量~/.emacs
设置为包含所有包含您使用的Lisp代码的目录的值。
通常,您希望在自己的代码中使用(require 'foo)
(例如在您的初始文件中),以加载库foo
。
但是,#3仅在库foo
(文件foo.el
)实际提供功能foo
:(provide 'foo)
时才有效。如果没有,则可以改为使用(load-library "foo")
。
(请注意使用'foo
和"foo"
之间的区别:第一个引用功能foo
;第二个引用文件foo.el
和foo.elc
。
最后,在尝试使用库之前,请帮个忙,看一下文件头的Commentary
部分。它通常会告诉您有关使用库的重要信息。即使它没有说出非常重要的东西,也可能会说一些有用的东西(例如一两个小提示)。
我提到1-5因为我看到太多(不,不多,但太多)新用户只是"安装"使用包管理器的东西,从不看看他们正在安装的代码是什么:它是什么,如何使用它等等。如果Commentary
中有某些内容,那么请阅读它;图书馆作者将其放在帮助您。
除此之外,玩得开心!