org-mode中表格内的代码块

6

我喜欢使用org-tables,用它们来记录各种事情。现在,我正在为Nix记录一些单行代码(在阅读了Domen Kožar的优秀指南后,他在今年的EuroPython上发表),但我遇到了一些问题:

* NIX Oneliners

|------------------+---------------------------------------------+------------------------------|
| DATE             | COMMAND                                     | DESCRIPTION                  |
|------------------+---------------------------------------------+------------------------------|
| <2014-07-24 Thu> | curl -L http://git.io/nix-install.sh § bash | Install nix                  |
| <2014-07-24 Thu> | nix-env -qaP § grep python3-3               | search for python3-3 package |
|------------------+---------------------------------------------+------------------------------|

命令实际上应该是curl -L http://git.io/nix-install.sh | bashnix-env -qaP | grep python3-3,但由于管道(|)会中断整个命令,我需要使用另一个字符(在这种情况下为§)。
我的问题是:如何告诉org-mode以文字的形式呈现区域中的文本?我不想对管道使用转义序列,因为我想从我的文档中轻松复制粘贴到shell中。
我想要的是类似于markdown中代码块的东西:
`do | not | care | about | this`

这在org-mode中是否存在?

编辑

= this | trick =事件使用不适用于表格内。

1个回答

2
你无法在表格中的条目中转义“|”字符,最好的方法是用看起来相似的字符代替它。关于这个问题,在ML上已经有过几个问题,最好的答案似乎是Unicode字符#xa6(¦)-例如,请参见此信息和封闭线程。

然而,你可以在表格中存储代码块的链接。在代码块内部,您可以拥有任意代码,因此在那里没有特殊字符的问题,而且作为奖励,您还可以执行代码块。

像这样:

* Table of code blocks

| Name | Code block |
|------+------------|
| foo  | [[foo][foo]]        |
| bar  | [[bar][bar]]        |


#+name: foo
#+begin_src bash
echo "Foo"
#+end_src

#+RESULTS: foo
: Foo

#+name: bar
#+begin_src bash
echo "Bar"
#+end_src

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