是否可以使用组织模式链接在源代码中导航

时间:2014-07-23 12:21:39

标签: emacs elisp org-mode

假设:

  1. 包含源代码的elisp文件
  2. 带文档的组织文件
  3. 典型源文件的方案:

    ;header, describing <code snippet 1>
    <code snippet 1>
    
    ;header, describing <code snippet 2>
    <code snippet 2>
    ...
    ;header, describing <code snippet n>
    <code snippet n>
    

    组织文件的方案:

    * <file_name.el>
    1. [[./<file_name.el>::1][header, describing <code snippet 1>]]
    2. [[./<file_name.el>::<line of header 2>][header, describing <code snippet 2>]]
    ...
    n. [[./<file_name.el>::<line of header n>][header, describing <code snippet n>]]
    

    org文件目前由我手动创建。当我点击链接时,我被重定向到文件的相应行。但是当修改源文件时,我被重定向到错误的行。

    当我点击链接时,是否可以更改所谓的函数,以便搜索正则表达式:"^;header, describing <code snippet n>"而不是将我重定向到固定的行号?

    也许,您可以建议我在组织文件和另一个文本文件的适当位置之间创建映射的更好方法吗?

1 个答案:

答案 0 :(得分:2)

您可以在源文件中定义锚点(即文件中任何其他位置都不会出现的词语),并在组织文件中链接到它们:

; <<foo>>
(defun foo ())

; <<bar>>
(defun bar ())
- [[file:source.el::<<foo>>][foo]]
- [[file:source.el::<<bar>>][bar]]

这种类型的“文本搜索”链接仅对于组织文件officially documented,但我怀疑它适用于每个基于文本的文件。