Questions tagged «package»

Emacs包含一项使您可以轻松下载和安装实现附加功能的软件包的功能。每个软件包都是一个单独的Emacs Lisp程序,有时包括其他组件,例如信息手册。


12
在不同机器之间同步包
我在不同的地方使用emacs,并且希望在各处安装类似的设置和软件包。我想可以将版本控制存储库用于安装文件。由于我使用的是Prelude,那就是~/.emacs.d/personal/。 我不知道如何处理包裹。在.emacs.d/安装的软件包列表中是否有文件可用于在其他计算机上制作emacs并安装其中列出的软件包?

4
如何使用Emacs测试REST API?
我正在组装一个应用程序,并希望能够测试api端点。我认为Emacs是一种不错的选择-尤其是如果可以解析JSON响应并且在后续测试中使用返回数据的话。 关于如何解决这个问题的任何想法,或者这仅仅是疯狂的?
34 package 

8
如何继续进行package.el签名检查失败
我只是尝试通过ascii-art-to-unicode从gnu存储库(http://elpa.gnu.org/)安装list-packages。我收到以下错误: package--check-signature: Failed to verify signature ascii-art-to-unicode-1.9.el.sig: ("No public key for 474F05837FBDEF9B created at 2014-09-24T16:20:01+0200 using DSA") 我正在使用酒桶/货盘来管理我的包裹;我错过了一些设置吗?elpa最近有一些变化吗? 我正在使用emacs 24.4预发行版。

2
如果我有MELPA,我还需要GNU ELPA吗?
这一直使我感到困惑,因为人们说MELPA确实具有较新版本的软件包,但是还不清楚,是否GNU ELPA只是MELPA的子集,还是我确实需要两者? 我问的原因是我正在大量试验我的软件包,并且package-list-packages花费了相当长的时间。我知道package-list-packages-no-fetch,但是我经常会想获得最新的软件包列表。 因此,问题是,是否可以像使用MELPA和GNU ELPA一样使用MELPA并获得相同的(可能是更新的版本)软件包?

2
package-initialize:错误的类型参数:arrayp,nil
在通过emacs作为ac / c ++编辑器进行操作时,我遇到了以下几行代码,它们包含在我的~/.emacs文件中,以进行连接以 melpa archives进行软件包安装 (require 'package) (add-to-list 'package-archives '("melpa" . "http://melpa.milkbox.net/packages/")) (package-initialize) 将这些行保存到emacs中之后,当我启动emacs时wrong type argument: arrayp, nil,在minibuffer区域中显示了一个 当我尝试时$ emacs --debug -init,我得到了: Debugger entered--Lisp error: (wrong-type-argument arrayp nil) package--add-to-archive-contents(nil "melpa") package-read-archive-contents("melpa") package-read-all-archive-contents() package-initialize() eval-buffer(#<buffer *load*> nil "/home/anupam/.emacs" nil t) ; Reading at buffer position 905 load-with-code-conversion("/home/anupam/.emacs" "/home/anupam/.emacs" t t) …
29 package  start-up 


6
在窗口布局之间切换
当我配置自定义布局时,只需要临时全屏浏览一个文件,一旦我想要该布局,就需要手动对其进行重排。 我想要一个插件/省略号代码来保存我的布局并能够在保存的布局之间切换。 更新 谢谢你们。 abo-abo建议使用获胜者模式真的很好,我让它在零时间工作。 wasamasa建议了一堆我从未听说过的出色插件,并提供了有关如何使用寄存器的信息。 Jordon Biondo向我解释了如何使用寄存器,而这些东西实际上正是我想要的最简单的方法。 谢谢你们。
24 window  package  frames 

4
降级通过MELPA安装的软件包的最简单方法
有时,来自MELPA的软件包更新可能会破坏emacs的某些部分,当这种情况发生时,我希望能够恢复使用较旧版本的软件包。 现在,我可以通过两种方式做到这一点: 我已将emacs设置为通过移至回收站来删除文件,并且在更新软件包时,旧版本已被回收站。我可以检索较旧的版本并替换其中的一个~/.emacs.d/elpa。 转到破坏功能的软件包的github存储库,获取该软件包的较旧版本,将其替换为~/.emacs.d/elpagitub中的一个,对字节进行字节重新编译。 这两种方式都涉及大量的手动工作。是否有一种更简便(最好是自动)的方式来降级从MELPA安装的软件包?

2
尽管有很多软件包,如何改善启动时间?
TL; DR我的软件包太多,以至于影响了我的启动时间。如果您不相信这种情况,请继续阅读。 我的Emacs启动时间非常短。我不使用use-package,我只是设置了很多钩子和autoloads,所以几乎所有代码都被推迟了。实际上,整个过程加载起来通常不到半秒,尽管看上去好像一团糟。 然而,随着时间的推移,我发现我的启动时间变细慢,令人费解。最终达到启动时间≥1秒的程度。我终于受够了,我深入探究了问题的根源。我最终注释掉了我的整个~/.emacs文件,发现启动时间仍然 ≥1秒。实际上,它只减少了大约0.2几秒钟,有时甚至更少。然后,我尝试emacs -q发现启动时间为〜0.1秒。 通过阅读Elisp手册的这一部分,我发现了为什么要这么emacs -q减少启动时间。显然emacs -q阻止了Emacs在启动时做三件事: 加载您的初始化文件 加载default.el文件 呼唤 package-initialize 我们已经排除了我的init文件,因为注释掉我的整个文件~/.emacs几乎没有任何作用。我不使用default.el文件,因此也排除了该文件。这package-initialize是造成性能下降的罪魁祸首。 为什么package-initialize要占用这么多启动时间?那是我问自己的第一个问题。我不是自动加载所有内容吗?嗯,是。但是,这恰恰是问题。 我发现这篇文章解释了“激活”软件包包括读取自动加载文件和设置加载路径。当您有许多软件包时,这显然会导致I / O损失,因为您有许多要读取的自动加载文件和许多设置路径。不幸的是,没有这个,管理自动加载的任务就落在用户手中。换句话说,在不让package.el爬网文件系统自动加载文件和路径的情况下,我必须亲自管理该过程,这可能是一个乏味且容易出错的过程。 我宁愿不走那条路。我目前有116个软件包,其中有107个来自ELPA,其中25个是依赖项。我确信这个惊人的数字是对我的表现造成如此严重的影响。但是我很困惑,因为我不想删除任何软件包。 在这种情况下是否有任何补救措施可以使我的闪电启动时间恢复原状? 更新: 我们已经开始了一个新的线程上emacs-devel关于邮件列表的一些 补丁由斯特凡Monnier的(这些补丁的描述是这里)来解决这个问题。欢迎任何人测试他的补丁并提供反馈。 另一个更新: 似乎Stefan Monnier对这个问题不再感兴趣,或者他没有收到我的消息。我倾向于相信前者,这很好,尽管在这种情况下,我将感谢他的某种回应。无论如何,到目前为止,他为该问题编写的代码都运行良好。他的最新补丁可以在此处(对于Emacs 25.3)和此处(对于Emacs master分支)找到。由于有了他的补丁程序,我在启动时间上看到了很好的改进,并且我对启动时间感到满意,因为它在不减少自定义功能的情况下尽可能地得到了优化。我希望这些修补程序能够在某个时候进入Emacs主线,但我想我(或其他人)现在必须为此承担火炬,而不是Stefan。在邮件列表中,我们有些关于版权转让和许可的问题。最初,我对此感到不舒服,但是由于理查德·斯托曼(Richard Stallman)和其他人的一些评论,版权分配可能没有我最初想象的那么严格。此外,我可能有可能将我的作品提交到公共领域,以替代版权转让。 无论如何,感谢Stefan到目前为止的补丁!我希望您会继续开发这些更改,但是如果没有,那就可以了,我可能会在某个时候继续开发它。我还要感谢其他所有为解决此问题提供见识和贡献的人。 另一个更新: 哇,该功能终于登陆了,将在Emacs 27中使用。感谢Stefan Monnier!

3
如何使用串烧模式?
我目前正在努力在Emacs中使用串烧模式。 我通过MELPA下载并安装了skewer-mode,因此所有依赖项都应就位。 出于测试目的,我什至下载了boidsjs 演示。 我将打开boids.js,然后键入M-xrun-skewer(使用URL打开浏览器http://127.0.0.1:8080/skewer/demo),然后最终运行M-xskewer-mode(启用-> skewer-mode)。 但是在浏览器中什么也没有发生。 我究竟做错了什么?

3
为什么必须将每个程序包添加到加载路径?(或我的init文件中的require'package问题)
每次我从“程序包菜单”安装程序包时,如果尝试require在init文件中尝试安装它,除非手动将其添加到加载路径,否则都会收到错误消息: (add-to-list 'load-path "/home/nick/.emacs.d/elpa/use-package-20141220.1645") (require 'use-package-autoloads) (require 'use-package) 太乏味了。通常,软件包路径包含版本号。如果软件包已更新,则必须手动编辑加载路径。 有什么办法可以自动化吗?

2
使用包中init和config之间的区别
我有这样的配置: (use-package html-mode :mode "\\.html\\'" :config (progn (add-hook 'html-mode-hook 'turn-off-auto-fill))) 现在,当我去访问HTML文件时,我发现auto-fill它没有关闭。但是,如果使用:init的不是:config,auto-fill关断。所以我的问题是命令何时:config执行?

2
使用package.el进行安装和更新,但使用package进行加载和配置
在最近了解了有关信息之后,use-package我决定将配置移植到该配置中,但发现自己不愿意放弃使用package.el安装软件包并保持更新的便利。我发现将use-package和结合起来有点棘手package.el。 我通常对学习人们如何use-package与package.el系统结合感兴趣,但是对于更具体的问题,请继续阅读。 这就是我想要的: 要由软件包管理器安装软件包,以便我可以轻松浏览软件包并通过进行更新list-packages。 要通过专门配置和加载程序包use-package,因此我可以轻松地在init文件中准确查看正在加载的内容以及配置方式。 (可选)我也希望能够通过use-package的:ensure关键字安装软件包。 如果我正确理解的话,我几乎package-initialize不需要做什么,基本上只希望它设置的方式load-path。目前,我的配置中包含以下内容: ;(package-initialize) (setq package-enable-at-startup nil) (let ((default-directory "~/.emacs.d/elpa")) (normal-top-level-add-subdirs-to-load-path)) (require 'use-package) 第一行带有注释,因此Emacs 25不会(package-initialize)对我的init文件添加帮助。有位normal-top-level-add-subdirs-to-load-path是一种近似什么package-initialize会使load-path,这似乎是足够好的近似。 这似乎实现了我的愿望1和2,但没有达到3。如果尝试使用:ensure,则会收到一条错误消息,指出package.el未初始化。调用package-initialize可以解决该问题,但是我希望避免这种情况,因为a)我不想加载所有无数的自动加载程序(我更喜欢使用它use-package来精确创建所需的自动加载程序),以及b)我希望能够轻松避免在需要时加载某些已安装的软件包(使用即可轻松完成use-package)。 有没有人建议如何做?

2
什么时候应该在配置文件中使用with-eval-after-load?
我查看了配置文件,并希望进行一些清理。 我的理解with-eval-after-load是,在装入相关程序包后将立即对其主体进行评估。在清理配置文件并进一步分割它们时,我想用括住每个软件包配置with-eval-after-load。一切都按预期进行,直到我封闭了helm和的配置helm-projectile。 这就是我的想法(lisp / init-helm.el): (with-eval-after-load 'helm (setq helm-mode-line-string "") (add-to-list 'helm-sources-using-default-as-input 'helm-source-man-pages) (define-key global-map (kbd "C-c m") 'helm-imenu) (define-key global-map (kbd "C-x b") 'helm-buffers-list)) (with-eval-after-load 'helm-command (global-set-key (kbd "M-x") 'helm-M-x)) (with-eval-after-load 'helm-projectile (helm-projectile-on)) 重新启动Emacs后,出现以下窗口大小问题: 这是我调整窗口大小的方法: (set-frame-parameter nil 'fullscreen 'fullboth) 我猜我在滥用with-eval-after-load,一个人如何清理他的Emacs配置并确保无论安装了什么软件包都不会中断?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.