Spacemacs 中的 Org-mode:with-eval-after-load 和 extra-packages

2024-03-11

背景

Spacemacs 文档推荐 http://spacemacs.org/layers/+emacs/org/README.html#important-note您将其他组织模式配置包装在其中(with-eval-after-load 'org [...config...]):

(defun dotspacemacs/user-config ()
  (with-eval-after-load 'org
   ;; here goes your Org config
   ))

这是因为:

从版本 0.104 开始,spacemacs 使用来自 org ELPA 的 org 版本 存储库而不是 emacs 附带的存储库。 [...] 由于自动加载,调用 org 函数将触发 emacs 附带的 org 的加载,这将引发冲突。

但假设你想使用some-package配置org-mode以各种方式。里面的org相关功能some-package.el文件是not包装成with-eval-after-load。对于大多数与组织相关的软件包来说都是如此,它们只有一个require org声明在顶部。

那你怎么加载some-package这样它就不会与 spacemacs 的组织实现发生冲突?我的第一个想法是这样做[A]:

(defun dotspacemacs/user-config ()
  (with-eval-after-load 'org
   (require 'some-package)
   ;;configure 'some-package and 'org-mode
   ))

这是正确的方法吗?此外,如果您按照此路线获取 Melpa 软件包,Spacemacs 将在您每次评估您的应用程序时删除并重新安装该软件包dotfile。为了避免这种情况,必须首先将 Melpa 包添加到[B]

(defun dotspacemacs/layers ()
  (setq-default
    dotspacemacs-additional-packages '(some-package)
   ))

Question

一般来说,这段代码([A][B])确保我的some-package(为 org 提供定制)不会与 spacemacs 的 org 实现混淆吗?或者我实际上必须编辑some-package.el直接文件并将其与组织相关的函数包装在with-eval-after-load(希望不是)?或者其他方式?

update

我在 gitter chat 上被告知这样做是安全的dotspacemacs-additonal-packages and with-eval-after-load如上所述。这就是解决方案。

Note

作为参考, somepackage 是here https://github.com/jkitchin/scimax/blob/master/scimax-org.el(这不是 Melpa 包,所以[B]不适用于这种特殊情况),但我的问题更具有普遍性。


我没有找到如何从github加载文件,这就是我现在正在做的。

  (with-eval-after-load 'org
    (load-file "~/.emacs.d/private/scimax-org-babel-ipython.el"))

我也尝试过下面的代码,但每次都会下载并延迟启动,可能还有其他一些问题

(scimax-org-babel-ipython :location (recipe :fetcher github :repo "jkitchin/scimax") :files ("scimax-org-babel-ipython.el"))

scimax库相当扎实,希望作者以后能把它放在melpa上。

一句警告:在加载正确的组织之前更改任何组织设置都会触发加载错误的组织版本。这将完全搞乱安装。解决此问题的唯一方法是删除 elpa 文件夹中的所有 .elc 文件。我在尝试加载上面的文件时犯了一个错误,当它们更改组织设置时,它们将触发加载。这个问题表现为奇怪的警告,比如变量 void 或类似的警告。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Spacemacs 中的 Org-mode:with-eval-after-load 和 extra-packages 的相关文章

  • 未找到 Emacs shell 命令

    我在 Mac OS X 10 5 8 上工作 我正在努力学习emacs 我对它很陌生 今天尝试从 emacs 中输入 shell 命令 我进入了pdflatex filename 但是 它给了我一个错误说 bin bash pdflatex
  • 如何在 emacs 中以 info 模式打开 *.info 文件?

    C x C f blah info以基础金属模式打开文件 我用过apropos并发现Info mode我认为这可能会从基本模式更改为信息模式 但这会引发 lisp 错误 如何在 emacs 中打开外部 第三方 info 文件 以便获得与查看
  • 自动替换在 emacs 中输入的某些文本字符串

    有一个小细节一直困扰着我一段时间 即我经常打字 inclued代替 include 如果不是很明显的话 我编写了大量 C 和 C 程序 这个拼写错误破坏了无数的构建并消耗了本来可以用来喝咖啡或冲浪的时间 当然 emacs 可以提供帮助并在我
  • 如何让 js2-mode 在 Emacs 中使用空格而不是制表符?

    我在用js2 mode http code google com p js2 mode 在 Emacs 中编辑 Javascript 但我似乎无法让它停止使用制表符而不是空格进行缩进 我的其他模式工作正常 只是遇到 js2 问题 你有 se
  • 如何在保存之前对 Emacs 中更改的行执行操作?

    我想添加一个 before save hook 我可以在其中仅对自上次保存以来更改的行执行一些操作 例如 删除尾随空格 检查缩进等 我不想对整个文件执行此操作 并且我知道每个选项都有单独的选项 只是为了删除所有更改行的尾随空格 等等 但我想
  • 如何更轻松地在 Emacs 中的缓冲区之间切换?

    我最近开始使用 emacs 并且大部分时间我都很享受使用它 我唯一不喜欢的是在缓冲区之间切换 我经常打开一些缓冲区 并且我已经厌倦了使用C x b and C x C b 是否有任何软件包可以使缓冲区之间的切换变得更容易 我调查过emacs
  • clojure 的 emacs slime-connect 版本不会查找 $CLASSPATH

    我需要将 clojure 函数与 slime connect 一起使用 我将所有库都放在 CLASSPATH 中 据我了解这个问题 https stackoverflow com questions 3376840 clojure clas
  • 如何在emacs中获取顶部和底部边距[关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 使用 emacs 时如何获得顶部和底部边距 如左右边缘 我发现当我编写或审阅大块文本时 让文本从屏幕顶部开始有点不舒服 我找不到仅顶部和底部边距设置
  • 有没有办法使用 emacs 安装 R 包?

    我正在使用 ESS 但每次需要安装新软件包时 我都必须使用 R gui 有没有办法在不离开 emacs 的情况下做到这一点 From help Startup Example of Rprofile site local add MASS
  • Emacs 中的 C 注释 - Linux 内核风格

    我在用着 setq default comment style multi line and my region comments when doing M are void main int i int b printf format s
  • 最新的CEDET版本无法加载语义包

    我在加载 Alex Ott 推荐的一些语义包时遇到问题他著名的 CEDET 指南 http alexott net en writings emacs devenv EmacsCedet html使用最新版本的 CEDET 时 我之前的设置
  • 如果文件有自动保存数据,emacs-daemon 启动会冻结

    我设置了桌面 el这样 emacs 在启动时会自动重新打开上次我杀死 emacs 时保持打开状态的所有文件 现在 当我将 emacs 作为守护进程启动并且重新打开的文件之一具有自动保存数据时 守护进程会显示通常的自动保存数据消息 file
  • emacs中如何删除重复行

    我的文本有很多行 我的问题是如何删除 emacs 中的重复行 在没有外部实用程序的情况下使用 emacs 或 elisp 包中的命令 例如 this is line a this is line b this is line a 删除第三行
  • Emacs:结合 isearch-forward 和 center-top-bottom

    预先非常感谢您的帮助 在 Emacs 中 我喜欢使用 iseach forward C s 但如果突出显示的字体单词位于屏幕中间而不是最底部的中心 我会更喜欢它 我发现自己不断地这样做 C s foo C s C s C s 哦 这就是我一
  • 如何在 elisp 中将列表作为宏的参数?

    我想实现这样的目标 setq my global keybindings C x C d dired C x C b ibuffer C x b ivy switch buffer apply bind keys my global key
  • 如何在 Emacs Lisp 中“URL 解码”字符串?

    我有一个像 foo 20bar 这样的字符串 我想要其中的 foo bar 我知道 Emacs Lisp 中必须有一个内置函数来解码 URL 编码的字符串 查询字符串 但我今天找不到它 无论是在我的文档中还是在我的文档中都找不到它 lisp
  • emacs:Orgmode,如何从一行行中创建一个列表

    有没有办法隐藏这样的行块 line1 line2 linen into 1 line1 2 line2 n linen 使用 Emacsorg mode http orgmode org 我知道的最短的方法是 突出显示这些行 包括它们的换行
  • Emacs:当光标位于右括号时匹配括号

    之前有人问过 Emacs 当光标位于其上时突出显示匹配的括号 而不是其后 https stackoverflow com questions 16399530 emacs highlight matching paren when curs
  • Emacs 强制组织模式捕获缓冲区在新窗口中打开

    如何强制组织模式的捕获缓冲区在新窗口中打开 我试过 setq special display regexps Capture 但它不起作用 我立即看到一个新窗口 然后 org mode 进行两个垂直分割 我使用 3 个垂直分割 并将捕获缓冲
  • 让 Emacs ansiterm 和 Zsh 更好地发挥作用

    我一直在尝试在 emacs 会话中使用 Zsh 而无需 emacs 重新映射所有 Zsh 键 我发现 ansi term 对此非常有效 但是我仍然遇到一些问题 我输出了很多垃圾字符 我可以用以下方法修复它 Setup proper term

随机推荐

  • Activity在后台时如何接收eventbus事件

    我想使用 Firebase 通知服务获取通知消息 我正在从 Firebase 发送消息 没问题 如果用户运行 我想收到此通知MainActivity我还想使用对话框显示弹出窗口 例如 如果用户运行其他活动SettingActivity or
  • Python zipfile 模块错误地认为我有一个跨越多个磁盘的 zipfile,引发 BadZipfile 错误

    我有一个 1 4GB 的 zip 文件 正在尝试连续生成每个成员 zipfile 模块不断抛出 BadZipfile 异常 指出 zipfile BadZipfile 不支持跨多个磁盘的 zip 文件 这是我的代码 import zipfi
  • 使用 ServiceStack.Text 序列化 ExpandoObject

    我正在尝试使用库序列化对象ServiceStack Text https github com ServiceStack ServiceStack Text 这有效 using System Dynamic using ServiceSta
  • 如何确定 t-sql 中的更新触发器是否发生任何更改

    如何确定 UPDATE 触发器中是否发生了更改 例如 我有一个名为 person 的表 其中只有一列 NAME 其中包含值 Mike 如果我跑 UPDATE person SET NAME Mike 如何确定更新触发器中没有任何更改 我知道
  • 如何在JavaFX中向窗口添加阴影?

    我已经删除了主阶段周围的默认边框 stage initStyle StageStyle UNDECORATED 这会删除我想要的窗口边框 但现在我想在窗口下方有一个阴影 顶层BorderPane对象有一个dropshadow应用效果 但阴影
  • 从 byte[] 创建位图

    我有一个byte 它从一个流创建 我需要创建一个Bitmap image 我正在尝试 MemoryStream ms new MemoryStream btarr Bitmap img new Bitmap img img FromStre
  • Julia:使用 Gadfly.jl 绘制矩阵

    我正在尝试用 Gadfly 绘制一个矩阵 就像我可以用 PyPlot 做的那样matshow using PyPlot p eye 5 p 5 5 1 matshow p 但我查看了文档 并没有发现什么 我怎样才能用牛虻做到这一点 牛虻有一
  • CGEventPost - 模拟键盘事件时可能出现错误?

    我有一段非常简单的代码 旨在模拟键盘事件 下面的简单示例应输入 Cz 按下shift键 按下c键 按下c键 然后按下shift键 然后 z 键向下和向上 但有时顺序似乎会变得混乱 当我创建一个计时器每秒调用此例程时 输出应该是 CzCzCz
  • 在 Azure 函数上集中使用时,Azure NotificationHubClient 会引发 SocketException

    我们使用 Azure 函数通过 Azure NotificationHubClient 发送推送通知 该函数在实时环境的高峰时段被大量调用 因此我们从NotificationHubClient SendNotificationAsync 方
  • 如何验证空白/空白? [角度2]

    我想避免 Angular 2 形式中的空格 空白 是否可以 如何才能做到这一点 您可以创建自定义验证器来处理此问题 new FormControl field fieldValue Validators required this noWh
  • Node.JS 中使用 async/await 的正确请求

    在我的程序中我做async从另一个 API 模块调用我的函数 var info await api MyRequest value 模块代码 var request require request module exports MyRequ
  • PHP 无法从接口扩展?

    我在一个 php 文件中写了下面的内容 人是一个界面 工程师扩展了人 但是当我运行这段代码时 出现错误 Fatal error Class engineer cannot extend from interface people in E
  • 正则表达式用于获取最后一个斜杠之后的所有内容[重复]

    这个问题在这里已经有答案了 我正在浏览 stackoverflow 并注意到用于匹配最后一个斜杠之后的所有内容的正则表达式是 例如 如果你有http www blah com blah test http www blah com blah
  • Java - 接口实现中的方法名称冲突

    如果我有两个接口 它们的用途完全不同 但具有相同的方法签名 那么如何使一个类实现这两个接口 而不必被迫编写一个为这两个接口服务的方法并在该方法中编写一些复杂的逻辑 检查正在进行的调用的对象类型并调用正确的代码的实现 在 C 中 这个问题可以
  • 将有角度的材料卡对齐在页面中心

    我制作了一个注册脚本 允许用户注册到我的网站 现在我遇到的问题是注册界面所在的有角材料卡不在中心 我尝试过很多事情 包括
  • WSO2 ESB:WSO2 REST API 调用中的 XML 响应未解析

    我在 WSO2 ESB 4 8 1 代理服务中处理来自 REST API 的纯 XML 响应时遇到问题 我的 outSequence 显然期望 API 调用结果有效负载是 SOAP 消息 但事实并非如此 纯 XML 从而在进一步处理它时导致
  • 是否可以在 ElasticSearch 中对嵌套文档进行排序?

    假设我有以下映射 site properties title type string description type string category type string tags type array point type geo p
  • 注释类型测试的超时参数

    我正在尝试在 IntelliJ IDEA 项目内的单元测试中使用注释类型测试的超时参数 第二个可选参数超时会导致测试失败 如果 花费的时间比指定的时钟时间长 以 毫秒 以下测试失败 Test timeout 100 public void
  • iPhone自动旋转动画

    是否可以关闭自动旋转动画 我希望它旋转 但我只是不希望发生动画 就像即时切换一样 如果你确实需要 只需使用setAnimationsEnabled of UIView void willRotateToInterfaceOrientatio
  • Spacemacs 中的 Org-mode:with-eval-after-load 和 extra-packages

    背景 Spacemacs 文档推荐 http spacemacs org layers emacs org README html important note您将其他组织模式配置包装在其中 with eval after load org