Questions tagged «org-babel»

组织模式的功能,可处理多种语言的源代码。它可以从Org模式文档中执行源代码,从而便于生成有文化的编程文档和管理可重复的研究。请注意,[tag:org-babel]现在已作为“与源代码一起使用”并入[tag:orgmode]中,而不再是单独的扩展名。

2
将纠结的文件上的更改同步回原始组织文件
我使用带有喷泉模式的组织模式来编写剧本。 组织的组织和剧本格式的源泉。 这是我用于此目的的代码: 在组织中使用(喷泉)源块的设置。 ;; prevent org from messing with indentation of the source text. (setq org-src-preserve-indentation t) (setq org-edit-src-content-indentation 0) ;; open the buffer for editing fountain in another window. (setq org-src-window-setup (quote reorganize-frame)) ;; prevent a message in the edit buffer from being shown. (setq org-edit-src-persistent-message nil) ;; …

2
我可以在组织模式下将公共代码块包含在两个不同的代码块中吗?
我有一个org-mode包含数据表和两个Python代码块的文件,用于从中提取不同的摘要。 我想在这两个代码块之间共享一些公共常量和函数。理想情况下,我可以通过将通用代码分解为一个单独的代码块来进行此操作,只要对其他两个块中的任何一个进行评估,该代码块都会自动包含并对其进行评估。用伪造的语法,它看起来类似于以下内容: #+NAME: init_block #+BEGIN_SRC python ... common constants and functions here ... #+END_SRC #+NAME: summary_1 #+BEGIN_SRC python :prepend init_block ... data-processing code depending on init code goes here ... #+END_SRC #+NAME: summary_2 #+BEGIN_SRC python :prepend init_block ... more processing which also depends on init code ... #+END_SRC 我想我可以使用该:session选项,但是由于两个原因,我不愿意使用该选项。首先,它建立了一个有状态的系统,而不是每次我C-c C-c在代码块上使用时都会从头开始运行的系统。其次,与此相关的是,我现在必须记住每次打开文件时都要手动评估通用的初始化代码:我不能只是更新数据表,转到摘要块之一并单击C-c …

1
sh和org-babel的shell有什么区别?
我正在尝试将来自组织模式的数据采购到我的Shell脚本中,但遇到了一个怪异现象: #+tblname: simple-table | 1 | | 2 | | 3 | | 4 | | 5 | #+name: work-with-simple-list-shell #+begin_src shell :var tbl=simple-table echo "$tbl" #+end_src #+RESULTS: work-with-simple-list-shell : 1 #+name: work-with-simple-list-sh #+begin_src sh :var tbl=simple-table echo "$tbl" #+end_src #+RESULTS: work-with-simple-list-sh | 1 | | 2 | | 3 …

3
组织模式Babel-交互式代码块评估
我想在C ++中的组织模式下评估包含“ cin”指令的源代码块,但是我找不到在评估过程中进行交互式评估(带有用户输入)的方法。代码示例: #+BEGIN_SRC C++ :results output :export code :tangle myfile.cpp #include <iostream> using namespace std; int main() { int a; cin>>a; cout<<a+1; } #+END_SRC 是否可以进行这样的交互式评估或进行模拟(通过向源代码提供假输入)?

4
组织模式Babel-Python中的交互式代码块评估
与这个问题类似,我想评估(以组织模式)包含“输入”指令的Python源代码块,但是我找不到在评估过程中进行交互式评估(带有用户输入)或提供一些已知输入的方法预先存储(例如存储在文件中)。 我的约束是明确使用input说明,因为所有这些都应包括在学生的教科书中。 代码示例: #+BEGIN_SRC python :results output a= input("Value") print(a) #+END_SRC 是否有可能进行这样的交互式评估或进行模拟(通过向源代码提供伪输入)?

4
组织模式:将管道源代码块作为stdin输出到下一个源代码块
我尝试将一个源块的输出作为标准输入传递到下一个源块。这里是我到目前为止的一个例子: Create stdin data: #+header: :exports code #+header: :results output #+begin_src sh echo "That goes to the next" #+end_src #+name: piped #+RESULTS: : That goes to the next Use "piped" as stdin: #+header: :exports results #+header: :stdin piped #+header: :results output #+begin_src sh VALUE=$(cat) echo "I got:" echo "$VALUE" #+end_src …

1
在组织模式下调试代码块
有没有可用的工具来简化组织模式块中的跟踪错误?(我正在专门使用python) 我当前的工作流程是将可工作的代码复制到源代码块,并尝试仅进行最小的修改。如果发生重大错误,我要么将其复制回另一个文件,要么纠缠该块并调试生成的文件。 我缺少任何工具吗?(例如,类似编译模式的模式,它将带您进入错误所在的行。) 编辑:例如,我刚刚找到Cc Cv v,它带出了一个扩展了noweb引用的缓冲区。不幸的是,它不包含标头参数,因此如果不先将其导入解释器中,则无法运行其中的代码。同样,如果我有一个return语句,则该语句不能执行,并且缓冲区不可编辑,因此需要执行几个步骤才能从python块获取可运行的源代码。

4
组织模式下的Clojure代码评估不产生任何输出
我正在尝试从我的org文件中运行clojure代码,以便进行一些识字编程。 什么不起作用: 当我执行源代码块时,我得到了No output produced。 样本src代码块 #+begin_src clojure (+ 2 2) #+end_src clojure 工作原理: cider-jack-in 正在工作,我能够在nREPL中执行代码 我可以从.clj文件执行代码 谢谢 细节 使用Spacemacs的Emacs 25.1 机构模式9.0.5 组织babel配置 (defun dotspacemacs/user-config () (require 'ob) (require 'ob-clojure) (require 'paredit) (require 'org-babel-clojure) (setq org-babel-clojure-backend 'cider) (require 'cider) (org-babel-do-load-languages 'org-babel-load-languages '((clojure . t))) ) 如果您需要其他任何信息,请告诉我

2
组织是否有任何“反缠结”操作,例如与非组织用户进行协作?
我想在org中编写自己的注释/测试/代码,然后用于org-bable-tangle生成源文件。但是,所有这些文件都受版本控制,因此可以从我的组织环境外部进行更改。 我希望能够具有多个src块,然后纠缠到一堆不同的文件,每个文件都将提交给版本控制。但同时,在从版本控制中提取任何更改后,能够将这些文件中的每个“解缠”回我的组织文件中。 有没有简单的方法可以做到这一点?我现在正在考虑与insert-file-contents

1
纠缠源代码块时是否可以从STDIN中读取用户输入?
在与源块纠缠的同时,是否可以从STDIN中读取用户输入org-babel-tangle? 我知道:Org Mode Babel-交互式代码块评估。 这无助于解决这个特殊的用例,因为它仍然不允许来自shell的正确STDIN输入,而只能在Emacs 内部模拟有限的输入。 背景 我想使用Org的Babel通过从一个组织文件执行一些教程来学习新的编程语言(Perl和Bash)。 问题在于许多教程都依赖于STDIN。例如,如果运行以下perl tidbit: #+BEGIN_SRC perl :tangle hello-name.pl :results output :export code use 5.010; use strict; use warnings; say "What is your name?"; my $name=<STDIN>; say "Hello $name, how are you?"; #+END_SRC Emacs不会等待用户的交互在STDIN上正确键入名称,它将立即输出: #+RESULTS: : What is your name? : Hello , how are …

3
在一个缓冲区中编辑多个源块
我有多个源代码块,它们都纠结在同一个文件中。当我C-c '在一个块内调用时,新缓冲区中仅显示此特定块。 是否有可能在此缓冲区中显示此文件的所有部分(而不是仅显示此特定片段)? 例: #+begin_src emacs-lisp :tangle foo.el (defvar *ok* "") #+end_src This is where the variable is stored... #+begin_src emacs-lisp :tangle foo.el (defun add-one (n) (+ 1 n)) #+end_src 如果我C-c '在第一块命中,我得到: (defvar *ok* "") 但我想要: (defvar *ok* "") (defun add-one (n) (+ 1 n))

1
在组织模式代码块中显示错误和警告
在评估Org文件中的Python代码块时,我希望能够报告警告和错误。 当代码块出现Python语法错误时,Org会帮助将其弹出到名为的单独缓冲区中*Org-Babel Error Output*。能够在该处发送我自己的警告,同时保留使用来将数组结果作为表格返回到组织模式的能力,这将是很好的:results value。 明确地说,这是我认为可能起作用的一种虚拟示例: #+BEGIN_SRC python import sys sys.stderr.write('Warning.\n') sys.stderr.flush() return [['Table', 'header'], ['table', 'data']] #+END_SRC #+RESULTS: | Table | header | | table | data | 编辑添加:关于组织模式列表的讨论表明,仅在代码块评估失败时才显示错误输出。因此看起来这是可能的,但是只能通过使用exit(1)或类似方法中止评估。

1
对LaTeX源代码块进行一致的语法突出显示
组织手册对org-babel代码块的语法突出显示的解决方案是使用以下命令打开本机字体 (setq org-src-fontify-natively t) 对于包含在块中的LaTeX代码效果很好 #+BEGIN_SRC latex 但不适用于具有: #+BEGIN_LATEX 有没有办法使两种类型的LaTeX源代码块使用相同的LaTeX语法突出显示方案/设置?

2
从代码块生成带有标题的表
我想生成具有来自代码块的标头的表。像这样: #+BEGIN_SRC emacs-lisp :results value table :table-header | First | Second | (identity '((a b) (c d))) #+END_SRC #+RESULTS: | First | Second | |-------+--------| | a | b | | c | d | 不幸的是:table-header | First | Second |不存在类似的东西。或更确切地说,我希望自己能忽略一些东西。(在这里,我(identity ...)用作实际计算值的代码的占位符。) 这种解决方法对我而言并不完全适合: #+BEGIN_SRC emacs-lisp :results value table (cons (list …

1
产生组织表的代码块,以后供其他代码块使用
我在生成组织表供以后由其他代码块使用的代码块时遇到麻烦。例如: #+NAME: upper_air #+BEGIN_SRC clojure :results output raw (clojure.pprint/print-table table) #+END_SRC 将产生 #+RESULTS: upper_air | :m | :degree | :meter/second | :degC | :millibar | |---------+---------+---------------+------------+-----------| | 1545.0 | 175.0 | 12.36 | 15.400001 | 850.0 | | 3162.0 | 265.0 | 6.69 | 4.8 | 700.0 | 但我真正想要的是 #+TBLNAME: …

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.