当用Org-Babel编写有文化的Python时,我需要能够控制缩进级别(显式地:indentation-level 3或隐式地使用一些聪明的指示).
这是一个演示此问题的示例文件.
#+BEGIN_SRC python :tangle "sample.py"
class Test:
def __init__(self):
self.a = 'a test class'
#+END_SRC
#+BEGIN_SRC python :tangle "sample.py"
def say_hi(self):
print 'Hi from this Test object!'
print 'ID: {}'.format(repr(self))
print 'Data: {}'.format(str(self.__dict__))
#+END_SRC
Run Code Online (Sandbox Code Playgroud) 我在一个.org文件中生成多个文件,包含多个源代码块.例如:
#+begin_src rst :tangle file1.rst :noweb yes
<<file1>>
#+end_src
#+begin_src rst :tangle file2.rst :noweb yes
<<file2>>
#+end_src
Run Code Online (Sandbox Code Playgroud)
有没有办法只修改一个特定的代码块而不更改标题选项?
我正在为Sphinx生成这些文件,并减少编译时间,我只想纠缠我正在处理的文件.
如果有这样的命令会很好org-bable-tangle-current-block- 有什么方法可以做到这一点吗?
(这是Orgmode的一个相关问题:如何过滤要纠结的块?)
我已将init.el迁移到组织模式文件,以使用与babel结合的org-mode的灵活性.
但是,我无法让它发挥作用.我怀疑有一些依赖性错误,已经尝试了很多东西来解决它,但我没有技能去理解出错的地方:
这里我的init.el ---除了调用包含所有init代码的org文件外什么都不做
;; from http://orgmode.org/worg/org-contrib/babel/intro.html#literate-programming
;;; init.el --- Where all the magic begins
;;
;; This file loads Org-mode and then loads the rest of our Emacs initialization from Emacs lisp
;; embedded in literate Org-mode files.
;; Load up Org Mode and (now included) Org Babel for elisp embedded in Org Mode files
(package-initialize)
(setq dotfiles-dir (file-name-directory (or (buffer-file-name) load-file-name)))
(require 'org-install)
(require 'ob-tangle)
(org-babel-load-file (expand-file-name "emacs-and-org-init.org" dotfiles-dir))
Run Code Online (Sandbox Code Playgroud)这是组织文件---即使是最小的它也会抛出错误
#+TITLE: Emacs and Org init
#+OPTIONS: toc:2 num:nil …Run Code Online (Sandbox Code Playgroud)我正在以组织模式开发一个有文化的程序.我在.emacs中有几个函数用于为程序设置repl,是否可以将这些函数移动到org-mode文件,并且每次打开文件时都会对它们进行评估(比如缓冲区本地变量,但是功能.)
我正在尝试根据使用“;”的 CSV 文件的内容创建组织表 作为分隔符。
我认为有一个源代码块来“cat”文件的内容,然后将结果传递给创建表的函数会很容易,但我卡住了:我找不到使用“的方法”结果”的第一个源代码块。我知道的函数 (org-table-convert-region) 需要一个区域来处理,但我不知道如何将“cat”-ed 文本作为一个区域传递。
#+NAME: csvraw
#+BEGIN_SRC sh :results raw
cat afile.csv
#+END_SRC
Run Code Online (Sandbox Code Playgroud)
感谢您帮助生成一个代码块,该代码块从我的 csv 文件中生成一个组织表,其中包含如下几行:
ID;Region;SubRegion;Area;No
1234;Asia;India;45;2
24251;Europe;Romania;456;67
Run Code Online (Sandbox Code Playgroud) 我想通过stdin通过二进制运行一些代码并粘贴输出。语言是foma,有没有一种快速的方法,还是我必须编写自己的定义?我已经尝试过http://sprunge.us/DjOV,但这给了我一个if: Wrong type argument: stringp, (:colname-names)。
我正在使用精彩的org-babel包用于emacs.
我想为C++代码生成一些没有主函数的代码,但我无法弄清楚如何去做.
#+begin_src C++ :tangle MyClass.h
namespace ns {
class MyClass {};
}
#+end_src
Run Code Online (Sandbox Code Playgroud)
这将产生:
int main() {
namespace ns {
class MyClass {};
}
}
Run Code Online (Sandbox Code Playgroud)
有没有办法可以指示org-babel不生成主要功能?我无法在任何地方找到任何文档或提示.
任何允许我内联org文件中的代码并在没有评估的情况下纠缠它的替代方案对我当前的问题也是一个解决方案.
我已将以下代码添加到我的 init 文件中。但我仍然收到错误。
(org-babel-do-load-languages
'org-babel-load-languages
'((js . t)))
Run Code Online (Sandbox Code Playgroud)
我注意到在Babel 支持的语言中,它说 javascript 需要node.js。所以我下载 node.js 并将文件夹添加到我的环境路径中。但是,我遇到了同样的错误。
那么如何在 org-babel 中运行 javascript 呢?
我们希望完全从组织模式的babel文件中自动生成Leiningen项目树.我们希望这样做,以便我们也可以通过创建漂亮的排版文档
org-latex-export-to-pdf.我们希望在org-mode中使用Clojure中的完整文字编程.
以下命令:
$ lein new ex1
Run Code Online (Sandbox Code Playgroud)
生成一个如下所示的树:
ex1
ex1/.gitignore
ex1/doc
ex1/doc/intro.md
ex1/project.clj
ex1/README.md
ex1/resources
ex1/src
ex1/src/ex1
ex1/src/ex1/core.clj
ex1/test
ex1/test/ex1
ex1/test/ex1/core_test.clj
Run Code Online (Sandbox Code Playgroud)
我们想通过org-babel-tangle在emacs中的org-mode缓冲区中运行而不再执行相同
的操作.
一个难题出现了:而tangle高兴地产生像现有的子目录中的文件src和test,似乎不愿意生产子目录,如果它们不存在.这意味着我们必须通过其他方式创建目录结构 - 除非我们能够tangle为我们做到这一点,这就是StackOverflow问题的主题
.
目录结构中有六个文件Leiningen.我可以将它们全部删除,然后BEGIN_SRC使用以下块来从我的org文件重新创建它们
#+BEGIN_SRC clojure :tangle ./ex1/src/ex1/core.clj
(ns ex1.core)
(defn foo
"I don't do a whole lot."
[x]
(println x "Hello, World!"))
#+END_SRC
Run Code Online (Sandbox Code Playgroud)
特别注意子目录路径的名称
#+BEGIN_SRC clojure :tangle ./ex1/src/ex1/core.clj
Run Code Online (Sandbox Code Playgroud)
如果我们的目录结构已经存在,一切都很好.org-mode tangle将创建或更新上述所有六个文件,并在任何现有目录中创建新文件.我们不知道如何tangle制作目录; 它抱怨说没有这样的目录.
如果您想了解更多详细信息,.org可在此处 …
如何将当前文件及其路径传递到 org-babel 中的源代码块之一?例如:
#+name: cflow
#+header: var file=<what to put here?>
#+begin_src sh :exports none
# output posix format
# -i <symbol> include name start with <symbol> file
# brief input
cflow --format=posix -i _ --brief
#+end_src
Run Code Online (Sandbox Code Playgroud)
我希望该命令在缓冲区的当前目录中执行。