请问use-package到底是干什么用的?

是的,always-ensure不会自动跳过内置包,只会生硬的报错

自荐下 GitHub - seagle0128/.emacs.d: Centaur Emacs - A Fancy and Fast Emacs Configuration

设置之后默认对于所有包都会先检查下载。对于 built-in 或者本地第三方 package,加上 :ensure nil 或者 :load-path就行了。

2 个赞

之后的 package 都不用写 :ensure t 了。 请问是这样的么?

是的。既然不用写 :ensure 的包是极少数,那使用这个全局变量能让我更专注于其它东西的定义上。

这个 :type 'sexp 是什么?

defcustom 用来定义一个变量,这个变量你可以在 (customize-variable) 里覆盖它的默认值。定义这个变量需要指定它的类型,这里这个变量的值的类型期望为 sexp ,也就是Lisp表达式。

请问 nykma 在需求的情况下会用到?

我的配置文件在这儿 ,不嫌丑的话随便拿随便用(

我的意思是:use-package除了使分类清晰之外还有没有别的用途(因为分类也可以用注释的方式)。比如:他能加快启动速度?

因为写法上看起来没有区别,那么它优化的点在哪里?

比如: require-package是当没有安装的时候自动下载安装,use-package的 :ensure nil也是同样的意思(从这个角度它肯定不能做什么优化)

再比如:还有我现在对每一个package都要require一下,use-package不需要require?

Centaur 好帅啊。一开始以为你不用 use-package, 后来发现都藏在 lisp 里面。已经加入我的学习列表里面啦。

设置之后默认对于所有包都会先检查下载。对于 built-in 或者本地第三方 package,加上 :ensure nil 或者 :load-path 就行了。

我会试试这个建议的。

另外:

为什么要单用一个 site-lisp 文件夹来放 robot-mode

========================================================================

是的。既然不用写 :ensure 的包是极少数,那使用这个全局变量能让我更专注于其它东西的定义上。

像你学习了。我先试一试,或许给 ~ bbatsov ~ 提个 PR :slight_smile:

我的配置文件在这儿 ,不嫌丑的话随便拿随便用(

not-so-hurt-yet-still-make-kind-of-sense

帅。

cd ~
mv .emacs.d .emacs.d.old

这个不错了。我自己的话,会用 git 建立一个新分支,然后慢慢学习。

=========================================================================

可能 (use-package isearch) 也会试图安装 isearch ,但压根就没这个包

有意思,这个算是 拼写错误 么?

@emacs_ran

很久以前 Centaur 也是不用use-package的,可以查看 legacy branch。后来发现用它组织配置文件更简洁,lazy loading 也很合理,大大加快启动速度。

这个文件夹用来存放一些不在 melpa 和 elpa 上的第三方库或者自己写的一些库,方便管理。robot-mode是目前唯一留下的,其他的尽量采用 melpa 和 elpa 上的官方库。当然你也可以像懒猫一样用submodule等方式管理这些库。

对 Use-package 感兴趣的话,自己看看文档、亲自试试就清楚了,至少比别人解释效果好。

我使用 use-package 是因为它有两个功能:

  1. 自动安装 package 功能
  2. 让缺少某个包的时候,不报错而是忽略这个包的配置