在一个缓冲区中编辑多个源块


10

我有多个源代码块,它们都纠结在同一个文件中。当我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))

2
org-babel-tangle-jump-to-org org-babel-detangle如果您纠结了链接注释(:comments link在源代码块中),则有些函数声称可以执行此操作。我似乎无法让他们正常工作。
erikstokes

Answers:


2

您正在寻找的是一种双向编辑功能,该功能可以在往返过程中保留编辑内容,而不仅仅是缠结和解缠命令常用的单向输出。我发现最好的解决办法是透镜状文本可用作为包静水上MELPA。


2

添加此标题参数

#+PROPERTY: header-args+ :comments link

纠纷。现在,您可以编辑纠结的文件本身并发出 org-babel-detangle将所有内容恢复到org文件中的信息。


2

我可以推荐org-tanglesync,它的同步方法比org-babel-detangle

本质上,如果某个块与外部文件纠缠在一起,那么每次对该块进行编辑时,都会同时检查该外部文件,并且如果检测到差异,则会提示用户拒绝外部更改或将外部更改拉入org src块。

它还具有自动处理缓冲区中所有纠结块的功能。

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.