【问题标题】:org-mode source inclusion line numbersorg-mode 源包含行号
【发布时间】:2012-08-23 14:49:16
【问题描述】:

Org-mode 有一个很棒的功能,可以包含这样的源代码:

#+begin_src java -n
    /**
     * @param foo
     */
    public static void doBar(Baz ba)
    {
        Collection<String> strings = ba.getStrings(true);
        return strings;
    }
#+end_src

-n 选项显示行号。

有一个+n 选项可以让编号从最后一个块继续。

有没有设置起始编号的选项?这对于希望行号与完整文件相对应的源代码 sn-ps 很有用。

【问题讨论】:

  • 嗨@justingordon。如果有机会,您能否将接受的答案更改为@jco 的?现在是您的问题的正确答案。

标签: emacs org-mode


【解决方案1】:

这是在 Org Mode 9 中添加的。现在可以将数字传递给 -n+n

因此,例如,您可以使用以下标题使示例从第 12 行开始:

#+begin_src java -n 12
...
#+end_src

【讨论】:

    【解决方案2】:

    我同意jco。该问题的长答案可能如下所示。但除了屏幕截图之外,它只是从手册中复制和粘贴。

    如第 Literal Examples 部分所述,您可以在源代码块和示例代码块中添加行号:

    无论是在示例中还是在 src sn-ps 中,您都可以在 BEGIN 行的末尾,以获取示例的行编号。这 -n 接受一个可选的数字参数,指定块的起始行号。如果您使用+n 开关,则编号从 以前编号的 sn-p 将在当前编号中继续。 +n 也可以采用数字参数。参数的值将是 添加到前一个块的最后一行以确定开始 行号。

    你也可以参考行号:

    在文字示例中,Org 会将像 (ref:name) 这样的字符串解释为 标签,并将它们用作特殊超链接的目标,例如[[(name)]] (即,用单括号括起来的参考名称)。在 HTML 中, 将鼠标悬停在此类链接上将远程突出显示 对应的代码行,有点酷。

    演示这两个功能的示例是

    #+BEGIN_SRC emacs-lisp -n -r
    (save-excursion                  (ref:sc)
       (goto-char (point-min)))      (ref:jump)
    #+END_SRC
    
    In line [[(sc)]] we remember the current position.
    [[(jump)][Line (jump)]] jumps to point-min.
    

    它会产生

    【讨论】:

      【解决方案3】:

      此答案已过时,请查看其他答案

      据我所知没有实施的选项。

      我刚刚测试过的一个非常简单的解决方案是定义自己的计数器组织用于 +n 工作。 它去:

      #+begin_src emacs-lisp :exports results
      ;; we need it not be a buffer-local value
      (setq-default org-export-last-code-line-counter-value 42)
      #+end_src
      

      由于是一个肮脏的黑客,它只能在第一个块中工作一次,但我不确定 ±n 的行为如何。 在对任何其他块进行编号之前对其进行评估(因为 :exports 结果,在我尝试时没有实际导出任何内容),因此它可以位于缓冲区中的任何位置。

      我想这不会很难实现,或者真正了解 elisp 的人可以做得更好,但我希望它会有所帮助。

      【讨论】:

      • 没试过,但看起来很合理。
      • 过时了。有关 9 后解决方案,请参阅上面的答案。
      猜你喜欢
      • 2011-07-10
      • 2021-02-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-06
      • 1970-01-01
      相关资源
      最近更新 更多