标签: org-babel

如何在org babel中加载bash(而不是sh)来启用#+ BEGIN_SRC bash?

我看到了引用和使用的示例

#+BEGIN_SRC bash
Run Code Online (Sandbox Code Playgroud)

但是在我的org模式版本(elpa,org 20150316)的菜单中customize-variable org-babel-load-languages,没有"bash"项,只有shell.试图评估代码如

#+BEGIN_SRC bash
ls -l
#+END_SRC
Run Code Online (Sandbox Code Playgroud)

我明白了

org-babel-execute-src-block:bash没有org-babel-execute函数!

我错过了什么?

谢谢.

bash org-mode org-babel

17
推荐指数
3
解决办法
1万
查看次数

使用org-babel进行文化编程

我正在使用org-babel进行识字.我的源码结构如下,

-imports
-utility fns
-game structure
 - detailed explanations
Run Code Online (Sandbox Code Playgroud)

这是代码的正常结构,我想要做的是将实用程序fns的解释移到最后,这样它就不会在生成的pdf文件中首先出现.现在这可以用noweb扩展来完成,但问题是当你有很多小函数时我必须添加一个带有唯一名称的src_block向下滚动文件并在文件中添加对它的引用这真的很烦人.有没有办法在一个部分中命名所有src_blocks?说本节中的所有代码都进入了块A.

emacs literate-programming org-mode org-babel

16
推荐指数
1
解决办法
2307
查看次数

如何使用Stack为Haskell设置org-babel

我在跑:

  • GNU Emacs 24.4.1
  • 堆栈版本1.3.3
  • 组织模式
  • 哈斯克尔模式

我看了看:

虽然上面的要点看起来很有希望,但我还没有找到任何看起来像权威的方式来运行org-haskell(例如,没有关于melpa的东西),当然没有什么专门针对运行堆栈环境而不是使用我的任何复杂性全球ghc将需要.

当我尝试:

#+BEGIN_SRC haskell
let x = "test"
putStrLn x
#+END_SRC
Run Code Online (Sandbox Code Playgroud)

我明白了

执行Haskell代码块

......永远挂起.当我Cg,我看到:

GHCi, version 7.6.3: http://www.haskell.org/ghc/  :? for help
Loading package ghc-prim ... linking ... done.
Loading package integer-gmp ... linking ... done.
Loading package base ... linking ... done.
Some flags have not been recognized: prompt2, ghci     | 
ghci    ?> let x = "TESTING!"
putStrLn x
"org-babel-haskell-eoe"
Prelude| 
<interactive>:4:1: parse error on …
Run Code Online (Sandbox Code Playgroud)

emacs haskell literate-programming org-mode org-babel

15
推荐指数
1
解决办法
1815
查看次数

在org-babel src块中缩进代码

在组织模式文件中,使用如下代码:

#+begin_src emacs-lisp
(add-to-list 'org-tab-before-tab-emulation-hook
             (lambda ()
               (when (within-the-body-of-a-begin-src-block)
                 (indent-for-tab-command--as-if-in-lisp-mode))))
#+end_src
Run Code Online (Sandbox Code Playgroud)

我希望TAB键缩进代码,如果它在lisp模式下的缓冲区中.

我需要的是:

  • 一种判断光标是否在src块内的方法.它不需要在标题行本身上触发,因为在这种情况下应该发生默认的组织折叠.
  • 一种根据标头中指定的模式(在本例中为emacs-lisp)缩进代码的方法.

Org已经可以根据模式突出显示src块语法,并且TAB挂钩就在那里.这看起来很可行.

emacs org-mode org-babel

13
推荐指数
3
解决办法
6787
查看次数

导出组织模式代码块和具有不同样式的结果

我正在准备使用org-mode和babel的演示文稿,并希望导出到beamer pdf.

在输出中,源代码和结果具有相同的样式(逐字记录在乳胶中).因此很难区分它们.

是否可以导出具有不同样式(最好是不同颜色)的源代码和结果?

非常感谢!

emacs beamer org-mode org-babel

11
推荐指数
1
解决办法
4541
查看次数

在Emacs组织模式下评估代码块时如何输入密码?

我在Org文件中有一个shell代码块.其中有"sudo"命令.所以我应该被要求输入密码.但是当我评估它时,它只是为"sudo"命令返回错误.是否有任何方法可以使评估类型具有互动性?

emacs org-mode org-babel

10
推荐指数
2
解决办法
1928
查看次数

如何防止org-mode执行所有babel源块?

我有一个包含大量babel源块的组织文件,只需要在代码更改时重新执行.

如何在导出期间阻止org执行所有块?换句话说,将它们全部设置为仅手动执行?

我更喜欢单个全局选项,而不是必须单独编辑每个块.

emacs org-mode org-babel

10
推荐指数
4
解决办法
3258
查看次数

字节码:符号作为变量的值为void:org-babel-tangle-lang-exts

我让Emacs工作得很好,然后我重新启动了我的电脑.现在这段代码阻止我加载我的init文件:

(require 'ob-clojure)
(org-babel-do-load-languages
     'org-babel-load-languages
     '((emacs-lisp . nil)
       (R . t)
       (python . t)
       (js . t)
       (scheme . t)
       (C . t)
       (clojure . t)
       (lilypond . t)
       (octave . t)))
Run Code Online (Sandbox Code Playgroud)

我不知道为什么会这样.在我重新开始之前,我已经让巴贝尔与R一起工作.现在我收到消息:

字节码:符号作为变量的值为void:org-babel-tangle-lang-exts

我在目录中提到org-babel的任何内容,只有上面的表达式出现了.再加上我摆脱它时我的其他init文件代码加载的事实让我觉得这个代码就是问题所在.但是为什么org-mode指的是我没有的功能呢?

运行emacs --debug-init给出:

调试器输入 - Lisp错误:( void-function org-babel-do-load-languages)(org-babel-do-load-languages)(引用org-babel-load-languages)(引用(......) ...... ...... ...... ......)))eval-buffer(#load <2 >> nil"/home/kca/.emacs.d/init-org.el"nil t); 读取缓冲区位置3080加载代码转换("/ home/kca/.emacs.d/init-org.el""/ home/kca /.emacs.d/init-org.el"nil nil) load("init-org")eval-buffer(#nil"/home/kca/.emacs.d/init.el"nil t); 读取缓冲区位置1464加载代码转换("/ home/kca/.emacs.d/init.el""/ home/kca /.emacs.d/init.el"tt)加载("/ home /kca/.emacs.d/init"tt)#[nil"\ 205\264

我试图检查是否正在加载正确的组织模式版本:

M-x load-library
org
M-x org-version
=> Org-mode version 7.7
Run Code Online (Sandbox Code Playgroud)

以下是init.el中加载它的代码:

(add-to-list 'load-path (concat conf-dir "org-7.7/lisp")) …
Run Code Online (Sandbox Code Playgroud)

emacs org-mode org-babel

9
推荐指数
1
解决办法
2948
查看次数

在org-mode中使用babel捕获shell命令的输出

我想知道我的网络硬件.

lspci | grep -i net
Run Code Online (Sandbox Code Playgroud)

从终端,此命令提供以下输出:

00:19.0以太网控制器:Intel公司82577LM千兆网络连接(rev 06)02:00.0网络控制器:Intel Corporation Centrino Advanced-N 6200(rev 35)

但是当我尝试从org-mode通过babel源块运行它时,我没有输出.

#+BEGIN_SRC sh
lspci | grep -i net
#+END_SRC

#+RESULTS:
Run Code Online (Sandbox Code Playgroud)

是什么赋予了?如何从终端获得相同的输出?

emacs org-mode org-babel

9
推荐指数
1
解决办法
3002
查看次数

用org-babel捕获"diff"的输出

我试图捕获difforg-babel 的输出,但由于某种原因它不起作用.对于文件

1

a b c
Run Code Online (Sandbox Code Playgroud)

2

a c b
Run Code Online (Sandbox Code Playgroud)

diff 1 2 从命令行调用返回

1c1
< a b c
---
> a c b
Run Code Online (Sandbox Code Playgroud)

但是对于org-babel,没有:

#+begin_src sh                                                                                                                                                 
diff 1 2                                                                                                                                                       
#+end_src                                                                                                                                                      

#+RESULTS:
Run Code Online (Sandbox Code Playgroud)

迷你缓冲区读取"代码块产生无输出".org-babel错误输出窗口为空.其他命令,如ls按预期显示输出.我不熟悉org-babel.

我尝试过使用:results output verbatim,没有变化.我也:results output replace按照这里的建议尝试使用.没有帮助.

  • Emacs版本是24.4.1(在Debian jessie上)
  • 组织模式版本是8.2.10

emacs sh org-mode org-babel

8
推荐指数
1
解决办法
897
查看次数

标签 统计

org-babel ×10

org-mode ×10

emacs ×9

literate-programming ×2

bash ×1

beamer ×1

haskell ×1

sh ×1