问题标签 [org-babel]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
haskell - 如何使用 Stack 为 Haskell 设置 org-babel
我在跑:
- GNU Emacs 24.4.1
- 堆栈版本 1.3.3
- 组织模式
- 哈斯克尔模式
我浏览过:
- Emacs 组织模式和读写 Haskell
- https://gist.github.com/reetinder/4022989
- https://wiki.haskell.org/Emacs/Literate_programming
- https://wiki.haskell.org/Literate_programming
- https://github.com/haskell/haskell-mode/issues/1429
虽然上面的要点看起来很有希望,但我还没有找到任何看起来是让 org-haskell 运行的权威方法(例如,melpa 上什么都没有),当然也没有任何东西专门针对运行堆栈环境而不是使用我的全球 ghc 将需要。
当我尝试:
我明白了
执行 Haskell 代码块
...永远挂起。当我 Cg 时,我看到:
当我切换到 haskell 缓冲区时,我看到它已经真正评估了我发送的内容,它只是有这个 org-babel-haskell-eoe 错误并且永远不会将控制权返回给我的 org 会话。
这是因为我有一个自定义提示吗?使用 lambda 而不是 Prelude> ?
emacs - Org Babel Source Block Native Fontification
我正在尝试获取 org-babel 源代码块来进行本机语法突出显示。我已经设置org-src-fontify-natively
为true,但仍然没有看到任何东西。
这是我的相关配置:
这是org-babel-view-src-block-info
(Cc Cv I):
我的(emacs-version)
:
GNU Emacs 25.1.50.1 (x86_64-apple-darwin13.4.0, NS appkit-1265.21 Version 10.9.5 (Build 13F1603))
of 2016-04-03
emacs - Org-Babel Clojure Cider NRepl 坏了?
我按照此处的说明编写了以下 org-mode 文件:
如您所见,emacs-lisp 块的评估工作并产生预期的输出。顺便说一句,它还报告了我正在使用的东西的版本。但是,clojure 源代码块在评估时会离开
我在代码块中尝试了许多不同的 Clojure 表达式,例如println
s 等等。NREPL 窗口中没有显示任何内容,并且 org 模式下的结果始终相同:上面的消息在 minibuffer 中。
在 emacs 小缓冲区中。以下是我采取的具体步骤:
$ lein new clojure-example
$ cd clojure-example
$ emacs clojure.example.org
- 在上面的文件中键入
- 运行 emacs 命令
cider-jack-in
这会产生一个带有以下版本信息的 repl 窗口:
等等
- 将 emacs 光标放在每个块内并键入
C-c C-c
,它绑定到org-babel-execute-src-block
在此之前,我在我的 emacs 初始化文件中插入了以下代码:
根据引用的说明。
我会很感激任何帮助。
python - 从 org-mode 将 utf-8 表传递给 python
当表包含 utf-8 编码的元素时,我试图从 org-to-python-to-pandas 中提取一个表,然后返回到 org,这让我有点头疼。
在下面的示例中,它是暴露给 python 的 tbl var。我相信这是默认为字符串类型的 Python 元素,而不是 unicode。
然后将它们作为 str 类型导入 pandas 数据框(尽管我怀疑这只是一个实现细节)。
因为 pandas 认为它将 ASCII 字符串作为元素,而不是 UTF-8 元素,所以我发现自己必须迭代每个元素,设置为 UTF-8,然后再编码回 ASCII,以免破坏 pandas 已经做出的类型假设. 这行得通,但显然我失去了非 ASCII 字符,而且很难看。见下文。
我的问题是 - 有没有办法将 :var tbl=TBL 传递给 python,使每个表元素中包含的数据被正确编码为 python unicode UTF-8 而不是 ASCII 字符串?
我相信如果是这种情况,那么在尝试使用 tabluate 库转换回 org-table 时,它将避免进一步的错误。制表库在不使用我的重新编码为 ASCII 的情况下抛出,但我不认为这是制表的问题,但 :var 提供的输入被键入为字符串,但实际上包含 utf-8。
我正在使用 Python 2.7 和 emacs24。
谢谢!
更新
这不是一个完整的答案,但在与制表所有者之一讨论过这个问题后,我已经证明可以通过对数据帧进行 UTF-8 解码来保留 Unicode,并在制表的实际输出上使用 UTF-8 编码。问题也与制表无关!
这比我原来删除 unicode 的解决方案要好,因为它可以正确保留字符。
我仍然认为如果您可以在 Org-Babel 中为输入和输出指定字符编码会很好,但除非其他人评论,否则我认为这是不可能的。
请参阅此处以获取来自 Org/Python 的讨论和调试会话,这些会话显示了内部结构:
emacs - 在 org-babel 的 RESULTS 块中启用字体粗细和颜色
有什么方法可以在#+RESULTS
块中启用字体粗细和颜色org-babel
?
例如,ls
使用该--color
选项调用会在 shell 中按预期呈现字体粗细和颜色,但在#+RESULTS
块内呈现时不会:
另一个例子是node
module ,它以明文形式chalk
出现在块中:#+RESULTS
python-sphinx - 组织模式代码块结果中的内部链接和目标链接,例如,链接到其他代码块的结果
我正在使用 org-mode 编写软件文档,其中函数、变量等的 API 文档是从代码的文档字符串中自动提取的(恰好在 Common Lisp 中)。然后将此文档导出为 HTML(我碰巧通过带有ox-rst和Sphinx的 reStructuredText 执行此操作)。它的工作方式与直接在 Python 中使用 Sphinx 非常相似,但具有 org-mode 的所有功能,例如可执行代码块。
只是为了简要说明原理,我将使用 Emacs Lisp 演示以下方法进行了一些简化。我有一个提取函数文档的代码块(使用 Common Lisp 的格式并使用:results output raw我避免在结果中包含双引号,但为简单起见,我将它们留在下面的简短演示中)。
然后,我使用我想要记录的函数调用该代码块,并在导出过程中将该调用替换为生成的文档。
自动插入到导出文件中的地图生成文档恰好如下。
我可以在我的文档字符串中使用 org-mode 格式,并且这种格式会按预期导出。
现在是我的问题。我想在其他函数、变量等的文档字符串和主文本(即,未自动插入的文本)中使用指向 API 条目(例如,函数的文档)的链接。使用函数名称自动插入目标很容易,我只需要相应地扩展上面的代码块function-doc。但是,在导出过程中找不到这些目标。即使我将目标文件自动添加到上面的代码块function-doc中,当我将 org-mode 链接[[ MY -FUNCTION]]插入该函数时,org-mode 会中断导出以下错误。
有没有办法绕过这个限制?在导出过程中,org-mode 是否可以“看到”org-mode 代码块结果中的目标?
我已经尝试了各种解决方法,但到目前为止都没有成功。例如,我尝试使用 org-mode 宏而不是代码块,但是产生多行宏结果非常棘手(Define org-mode macro with line breaks where 对我来说不够用)。我正在寻找一种方法将有关未解决链接的错误消息转换为警告,但我发现的只是标记损坏链接的选项,如下所示。有什么方法可以导出并忽略(看似)断开的链接?
我还考虑过首先将我的 org 文件自动导出到已插入所有代码块结果的 org,以便 org-mode 可以看到链接的所有目标,但显然也无法将 org 文件导出到 org 模式(看似)断开的链接。
有什么帮助吗?非常感谢!
emacs - 如何在 Emacs Lisp 中将参数列表转换为每个换行符的字符串?
我想emacs-lisp
在 Emacs Org-mode 中将 list to :var 放入代码块中,并在新行上仅输出每个列表项。它ruby
看起来很简单
但无法在 Emacs lisp 代码块中实现。
org-mode - 如何为空输出自动抑制`#+RESULTS`?
在以下 org-mode 源代码片段中,不会生成任何结果:
但是,在执行时#+RESULTS:
会添加到文档中。如何将 org-mode / babel 配置为仅在有要显示的内容时插入结果?
我知道我可以使用 禁用输出:results silent
,但我不希望根据是否生成结果来指定不同的标志。
emacs - org-mode babel sh script + escaped(?) ~ char 作为主目录?
我在 org-mode babel 下有这个小sh脚本:
注意:set -e
是否会在发生错误时立即停止脚本。
该脚本适用于完整路径:
但是,当与~
(我的主目录)一起使用时,它不再起作用:
我明白了
sh: 4: cd: 不能 cd 到 ~/Temp
错误信息。
另请注意
也不行。
我猜这个~
角色在某个地方被转义了(在 Emacs 中?在 sh 中?)......
我的问题是:如何解决这个问题?
python - 在emacs上使用babel org模式作为python数据分析环境
我已经开始使用org-babel
25.3.1 emacs
。用于我的初始化文件和组织。我正在使用ein
跑步jupyter notebook
并想知道是否可以以org-babel
相同的方式使用。
ein
我使用 、 和 python 库进行数据分析的笔记本numpy
,pandas
它工作matplotlib
得很好,但是看到使用 babel和在 babel 上完成的类似工作的示例R
gnuplot
org-mode
,我想知道它是否可以用于python
分析包。
这是babel 简短文档的链接,介绍了文学编程的一些不同语言的代码片段。
我使用 Python 3.5.4 版anaconda
,它可以方便地安装所有库,并且使用 anaconda-modeemacs
我可以访问所有功能,但在 babel 中:
org 文件中的这段代码并没有真正看到 anaconda 安装,因为我认为它使用 emacs python 模式,因此不导入 numpy ...
我喜欢文学编程的想法,它可能不如带有代码单元和降价单元的笔记本有用,但考虑到可定制的特性org-mode
,在那种环境中工作可能会非常有趣。
编辑从这里开始
我在上一个问题中发现了这个实现, @bowen.li 的答案有用于将 interperter 更改为 ipython 的有用代码,因此可以访问缺少的库。我仍在寻找实现更多功能的方法,例如使用 matplotlib 进行内联绘图。