org-babel-tangle只有一个代码块

时间:2015-02-25 18:48:12

标签: org-mode org-babel

我在一个.org文件中生成多个文件,包含多个源代码块。例如:

#+begin_src rst :tangle file1.rst :noweb yes
<<file1>>
#+end_src

#+begin_src rst :tangle file2.rst :noweb yes
<<file2>>
#+end_src

有没有办法只修改一个特定的代码块而不更改标题选项?

我正在为Sphinx生成这些文件,并减少编译时间,我只想纠缠我正在处理的文件。

如果有org-bable-tangle-current-block这样的命令会很棒 - 有没有办法做到这一点?

(这是与Orgmode: how to filter the blocks to be tangle?相关的问题)

2 个答案:

答案 0 :(得分:7)

可以通过使用前缀参数调用org-babel-tangle来实现。

所以C-u C-c C-v t应该做你想做的事。

来自docstring:

  

使用一个通用前缀参数,仅在点处纠缠块。   当两个通用前缀参数时,只纠缠纠缠块   点的文件。

答案 1 :(得分:5)

如果有人有兴趣将密钥绑定到此 - 我的init文件包含以下内容:

(defun org-babel-tangle-block()
  (interactive)
  (let ((current-prefix-arg '(4)))
     (call-interactively 'org-babel-tangle)
))

(eval-after-load "org"
  '(progn
     (define-key org-mode-map (kbd "C-c b") 'org-babel-tangle-block)
))

我可以用C-c b纠正光标下的代码块。