Elisp、alist 和字符串;类型混乱

2023-12-24

我正在尝试将组织项目发布为 html,并使用以下组织项目定义自动执行该任务:

(defconst home (file-name-directory (or load-file-name buffer-file-name)))

(require 'org-publish)
(setq org-publish-project-alist
      '(
        ;; add all the components here
        ;; *notes* - publishes org files to html
        ("org-notes"
         :base-directory (concat home "org/")
         :base-extension "org"  ; Filename suffix without dot
         :publishing-directory (concat home "../public_html/")
         :recursive t           ; includes subdirectories
         :publishing-function org-publish-org-to-html
         :headline-levels 4             ; Just the default for this project.
         :auto-preamble t
         :auto-sitemap t                ; generate automagically
         :sitemap-filename "sitemap.org"
         :sitemap-title "Sitemap"
         )

        ;; *static* - copies files to directories
        ("org-static"
         :base-directory (concat home "org/")
         :base-extension "css\\|js\\|png\\|jpg\\|gif\\|pdf\\|mp3\\|ogg\\|swf"
         :publishing-directory (concat home "../public_html/")
         :recursive t
         :publishing-function org-publish-attachment
         )

        ;; *publish* with M-x org-publish-project RET emacsclub RET
        ("emacsclub" :components ("org-notes" "org-static"))
        ))

但是,在导出项目时,我收到错误

错误的类型参数:stringp, (concat home "org")

从 Elisp 的角度来看,到底发生了什么? concat的输出不是字符串吗?在这种情况下为什么会失败?我尝试 stringp 它本身与 concat 参数一起返回 true。

我试图完成的其他事情是在评估此文件时导出整个项目。我尝试过类似的事情 (命令执行组织发布全部) 但它也抱怨类型参数错误。我可以用什么来完成这件事?


问题是引用第二个参数(setq org-publish-project-alist '(...))意味着该列表结构中的任何内容都不会被评估。换句话说,Emacs 告诉你这个值(concat home "org")不是字符串:实际上它是一个包含三个元素的列表(如果对其求值,将给出一个字符串)。

一种可能的解决方法可能是使用“反引号”或“准引号”机制,就像quote or '但允许您使用以下方法有选择地拼接已评估的 Lisp 代码位, and ,@. (See (elisp)Backquote有关更多详细信息,请参阅信息手册)。因此,您可以将上面的代码更改为类似的内容

(setq org-publish-project-alist
  `(                            ; note ` instead of '
    ("org-notes"
     ;; Note commas , in front of code to evaluate
     :base-directory ,(concat home "org/")
     :base-extension "org"
     :publishing-directory ,(concat home "../public_html/")
     ....

请注意,当(setq ...)评估表单:换句话说,如果您需要这些值针对不同的项目目录动态更改,这对您没有帮助。但既然你定义了home作为一个常数也许这并不重要?

PS:如果您需要更详细地了解您的位置wrong-type-argument错误来自,尝试做M-x toggle-debug-on-error或评估(setq debug-on-error t)以获得详细的回溯。

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

Elisp、alist 和字符串;类型混乱 的相关文章

  • Emacs + 流浪汉 + plink

    我正在尝试让 emacs trapmp 在 Windows XP 下运行 以便在 Amazon EC2 实例上通过 putty plink 工作 用于执行此操作的文档很少 我可以找到部分文档 但没有一个文档能够解决实现此功能所需的所有步骤
  • Mac 上的 Emacs 和 MySQL

    我尝试使用 sql mysql 模式 但 emacs 无法找到文件 目录 mysql 但是 我可以从终端访问它 如何将 emacs 中的 mysql 指向 usr local mysql bin mysql setq sql mysql p
  • Emacs 是否具有单词和行补全功能(如 Vim 的插入模式补全功能)?

    Vim 完成单词和行CTRL X P and CTRL L 有一个名为 Company mode 的 Emacs 插件 但该插件会干扰 Emacs 中的许多内容并导致冲突 与全局 linum 和 yasnippets 我知道我可以在 Ema
  • Emacs:导航目录和打开文件的好策略是什么?

    上周 由于必须应对 R 和 Perl 的不同 IDE 我再次感到愤怒 我不喜欢这两种 IDE 也没有使用它们来真正适应 所以我决定尝试 Emacs 我做出这个决定并非没有一定的恐惧 我的主要用途是使用 cperl 来使用 Perl 以及使用
  • 如何为 C# 模式配置 Emacs speedbar?

    我正在使用 EmacsC Mode http mfgames com linux csharp mode当我打开速度栏时 默认情况下不会显示任何文件 我可以在速度栏模式下选择 显示所有文件 但每个 cs 文件都会在名称旁边显示 如何正确配置
  • Emacs Lisp 中函数名称中的“internal”是什么意思?

    有些人使用双破折号来表示该功能可能会发生变化 函数名称中的双减号 约定在 Emacs Lisp 中意味着什么 https stackoverflow com questions 3180390 what does the double mi
  • CSharpRepl emacs 集成?

    我碰巧知道莫诺CSharpRepl http www mono project com CsharpRepl 是否有 emacs csharp 模式使用它在一个窗口中运行 REPL 并像 python 模式一样在另一个窗口中编译 运行 C
  • 我应该学习使用 Emacs 吗? [复制]

    这个问题在这里已经有答案了 我使用 IntelliJ IDEA 作为代码编辑器 所以这并不是要取代它 我用vi or vim用于在我们的服务器和标准上进行简单的文本编辑unix用于查找文件 获取目录列表等的命令 同事们对 emacs 赞不绝
  • Emacs org-mode:使用 goto 界面重新归档

    我经常使用组织模式的捕获 重新文件 归档结构 但我对重新归档的工作方式有疑问 我使用 IDO 补全 这样当我重新归档树时C c C w我将所有可能的树重新归档到迷你缓冲区中 然而 这会导致大量可能的补全 而这些补全实际上可读性不太好 如果您
  • 设置自动完成以处理语义

    我在 Emacs 中的自动完成包方面遇到问题 目前我已经启动并运行了 cedet 并具有适当的自动完成功能 但自动完成包有一些奇怪的行为 它不会使用语义 参议员 的数据库 直到我显式访问包含文件并创建 C u M x bovinate 然后
  • Lisp:CHAR 既未声明也未绑定

    几天前我决定学习 通用 Lisp 我意识到这是一个相当新手的问题 对于至少有一点经验的人来说可能非常微不足道 所以基本上发生的事情是我加载 Emacs Slime 通过 Lisp in a Box 并编写我的程序 包括在下面 defun l
  • 如何在 Emacs shell 缓冲区中获得对“✖”等的支持?

    我正在运行一个进程 如果出现错误 则输出字符 如 Unicode 中定义 但是 如果在 Emacs shell 缓冲区 GNU Emacs 的 Aquamacs 发行版 中运行该进程 我根本看不到错误 使用 braeburn aquamac
  • 如何从 Emacs 中检出 Perforce 下的文件?

    我在工作中使用 Perforce 进行源代码控制 并且希望从 Emacs 中 打开以进行编辑 源代码控制下的文件 那怎么办呢 我需要在 Emacs 中设置什么 有插件吗 我还想执行其他 p4 操作 例如提交我的更改等 Perforce Em
  • 用于将 PCRE 正则表达式转换为 emacs 正则表达式的 Elisp 机制

    我承认对喜好有很大的偏见PCRE http www pcre org regexps 比 emacs 好得多 如果没有其他原因 当我输入 时 我几乎总是想要一个分组运算符 当然 w 和类似的比其他等价物方便得多 但当然 期望改变 emacs
  • Emacs 中 hunspell 的工作设置

    有没有人有工作设置hunspell and Emacs 简单设定ispell program name to hunspell不起作用 输出 例如 使用 Flyspell 时 如下所示 gt UTF 8 encoding error Mis
  • 有没有办法在 Emacs 中使用 Djinn 自动生成 Haskell 代码?

    标题几乎说明了一切 我正在寻找这样的东西 f Int gt Bool gt Int f body Djinn 可以使用定理证明来通过证明该类型存在来生成此类函数的代码 我想知道 是否有现有的方法可以从 Emacs 中获取此功能 因此 我不需
  • 在 Emacs 中追逐标签后切换到原始缓冲区

    I use M 跳转到类 函数的定义 有时有多个类具有相同的标签 所以我需要使用C u M 跳转到多个文件 因此有多个缓冲区 现在我的问题是 如何快速回到原来的缓冲区 我知道C x b 但是您需要输入缓冲区名称 或者它只是默认为您提供您访问
  • 组织模式下的内联代码

    Markdown 允许embedded code 这怎么能在org mode 我了解源代码块 begin example blah blah end example 但我想要的是这样的 显然 具有正确的语法 我不知道 This is emb
  • Emacs 如何确定要撤消的工作单元

    When you enter the command C Emacs undoes some part of your recent changes to a buffer When you enter C again it undoes
  • 在 Elisp 中如何获取变量的初始值?

    在Emacs Lisp中 是否有一个函数可以获取由以下方式初始化的符号的初始值defvar 像some function如下图所示 defvar var initial value setq var changed value some f

随机推荐

  • 在 Java 中初始化通用变量?

    我在使用泛型时遇到问题 我有一个方法作为 public void push T element 现在我无法理解的是如何创建一个通用变量 以便我可以将其传递到该方法中 我知道通用永远是一个数字 但我不知道应该如何做到这一点 是不是一定是这样的
  • SerialPort port.open“端口‘COM2’不存在。”

    我有一个大问题SerialPort Open 我正在与 USB 虚拟 com 端口 cdc 通信 它被列为 COM2 它在 TeraTerm 超级终端 等中运行良好 但是当我尝试在 C 中打开端口时 它给了我异常The port COM2
  • 在高图表中显示对应的格鲁吉亚日期的波斯日期

    我们可以使用公历日期和格鲁吉亚到波斯日期转换器脚本来显示波斯日期Highchart and Highstock 那么覆盖日期格式的更好方法是使用Highcharts dateFormats and 波斯语日期 http babakhani
  • Matplotlib:通过乘以常数来缩放轴

    matplotlib 有没有快速缩放轴的方法 说我想要情节 import matplotlib pyplot as plt c 10 20 30 40 plt plot c 它会绘制 我如何扩展x axis快速地说 将每个值乘以5 一种方法
  • 如何模仿AOT逐层导出功能X++?

    我正在尝试以编程方式在 X 中复制以下步骤 在 AOT 树中右键单击根节点 然后单击 导出 提供文件名 单击 应用程序对象层 复选框 指定 cus 作为应用程序对象层 将 XPO 导出到文件 我已经尽可能导出整个 AOT 树 但我无法找到一
  • 如何在JavaFX ScatterChart中从点到X轴绘制一条线?

    现在我正在使用 JavaFX ScatterChart 我需要从数据点到 X 轴绘制一条线 如下图所示 感谢您的帮助 您必须创建自定义图表并将线条添加为自定义节点 这与答案中的标记线非常相似在 JavaFX 图表中添加一条线 https s
  • 如何在插入语句期间从C#中的Access数据库获取下一个自动增量值

    我当前正在从用 C 编写的 Windows 窗体应用程序输入数据 我的数据库是 Microsoft Access 数据库 一切工作正常 接受我不断收到重复主键值的错误 我已经在互联网上挖掘了一段时间 但没有找到与我的问题相关的太多内容 我当
  • SQL Compact 3.5 中的嵌套 SELECT 子句

    在这篇文章中 使用嵌套选择进行选择 http social msdn microsoft com Forums en sqlce thread ac926272 2382 4acb 84e3 fc32945c7cea 我读到 SQL Com
  • 属性文件中属性的命名约定

    Java 属性文件中定义的属性名称的命名约定是什么 我可以使用大写字母还是只能使用小写字母 例如 bankAccountNumber 或bank account number 它是在互联网上的某个地方定义的吗 建议属性文件中的命名约定为小写
  • R 中 prcomp 对象的子集

    我基本上是计算一组变量的 PCA 一切正常 假设我使用虹膜数据作为示例 但我的数据不同 虹膜数据应该足以解释我的问题 data iris log ir lt log iris 1 4 log ir mapply is infinite lo
  • VSTO Outlook AddIn:无法使用资源管理器关闭事件

    前一段时间 我使用 NetOffice 编写了一个 Outlook AddIn 效果非常好 现在 借助新的 Visual Studio Community 2017 我可以在没有 NetOffice 帮助的情况下对 Office AddIn
  • 替换两个单词之间可能有一个或多个任何类型的空格

    我是正则表达式的新手 并且在看似简单的情况下遇到了困难 我需要将 foo bar 替换为 fubar 其中 foo 和 bar 之间有任意数量和种类的空白 无论如何 我使用 php 的 eregi replace 来完成此操作 先谢谢您的帮
  • 条件 numpy.cumsum?

    我对 python 和 numpy 很陌生 如果我误用了一些术语 我很抱歉 我已将栅格转换为 2D numpy 数组 希望能够快速有效地对其进行计算 我需要获得 numpy 数组的累积和 这样 对于 每个值 我生成所有小于或的值的总和 等于
  • 如何使用formik实现最新6版本的mui Timepicker

    我正在使用 MUI 反应时间选择器 https mui com x react date pickers time picker 我想使用 Formik 将其与验证集成 但问题是值没有绑定到表单的初始值中 const initialValu
  • jquery 弹跳效果破坏了列表的内联对齐

    我正在尝试用我网站的主导航制作一些动画 有了这个 我想在导航菜单项悬停时应用弹跳效果 这是我的导航结构 div ul li a Home a li li a About a li li a Testimonials a li li a Co
  • Cognito 中 adminConfirmSignUp 命令的用途是什么

    我正在创建并确认用户 let AWS require aws sdk let AWS REGION us east 1 let AWS COGNITO USER POOL ID My Cognito User Pool ID let EMA
  • 无法连接到 Elasticsearch:未找到活动连接:没有可用的 Elasticsearch 节点

    我只是无法理解发生了什么事 我的 go 应用程序无法连接到弹性搜索 该节点可用 已启动并正在运行 我在这里做错了什么 import fmt github com olivere elastic v7 github com sirupsen
  • 黄瓜在 Windows 中不显示彩色输出

    这可能是非常愚蠢的事情 但我无法解决 我将 Cucumber 版本升级到 v 0 10 0 现在测试 在 Win 7 上运行 未使用 漂亮 格式化程序显示彩色输出 运行测试时会打印此错误 WARNING You must use ANSIC
  • ConfigurationManager.AppSettings["SettingName"] 与 Properties.Settings.Default.SettingName 我什么时候应该使用它们?

    什么时候应该使用configurationManager AppSettings或Visual Studio生成的强类型设置 在大多数情况下 强类型的设置似乎更合适 但我认为可以使用 ConfigurationManager 方法将设置动态
  • Elisp、alist 和字符串;类型混乱

    我正在尝试将组织项目发布为 html 并使用以下组织项目定义自动执行该任务 defconst home file name directory or load file name buffer file name require org p