已解决:emacs:org-babel:现在使用多余行扩展noweb引用

3

当在org-mode的源代码块中扩展noweb引用时,即使引用的内容只有一行,它也会多出一行来扩展引用。这是一个例子:

源代码块如下:

 #+srcname: test
 #+begin_src sh
 hello
 #+end_src

 #+begin_src sh :tangle ~/tmp/1.sh
 echo "<<test>>, world!"
 #+end_src

这个块的展开结果是:

 echo "hello
 echo ", world!"

如何修改或设置才能使结果展开如下所示:
 echo "hello, world!"

答案:请参考评论。
1个回答

0
你使用的org-mode版本是哪个?
我不确定为什么会添加换行符,但是你给出的示例无法工作,因为你缺少:noweb yes头部参数。我有这段代码:
testing

#+srcname: test                                                                 
#+begin_src sh                                                                  
hello                                                                           
#+end_src                                                                       

#+begin_src sh :tangle ~/tmp/1.sh :noweb yes                                    
echo "<<test>>, world!"                                                         
#+end_src

当我运行org-babel-tangle(绑定到C-c C-v C-t)时,我会得到这个:
tmp$ cat 1.sh 

echo "hello, world!"

我正在使用 org-mode 版本:7.7 (release_7.7.303.g56de2c.dirty)。

谢谢您的建议。我已将noweb头文件的默认值设置为是,这样就可以工作了。我的org-mode版本是7.6,我也尝试过7.7版本,但两者都有同样的问题。我的emacs版本是23.2,在debian系统上运行。我已经使用“-q”选项启动emacs(这样它就不会加载.emacs设置),但问题仍然存在。我猜测emacs的安装可能是原因。有什么建议吗?@cm2 - astropeak
安装另一个org-mode版本后,问题消失了。我原来的org-mode版本是7.6,然后我使用git安装了最新的开发版7.7,两个都不能工作。然后我下载了标准版本的7.7,然后它就可以工作了。 - astropeak
嗯...我不确定是什么原因导致了这个问题。很抱歉我无法提供更多帮助! - cm2

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接