如何在Emacs org-mode中设置指向外部文件的链接

22

我有两个文件:

  1. 带代码的php文件
  2. 带文档的org文件

如何从org文件中创建指向php文件中某行的链接?点击链接将移动光标到php文件相应的行。

2个回答

27

在 org mode 中使用以下符号创建链接:

[[/path/to/file.php::line][string-to-display]]

如果您想显示文件名,只需使用

[[/path/to/file.php::line]]

详细信息和其他指定链接的方法,请参见Org mode Info页面中的超链接


这个方法是有效的,但是有些文件(没有 .org 或 .txt 扩展名)在 TextEdit 中打开,而不是 Emacs。假设我不想去为我主目录中的每个点文件设置 setq auto-mode-alist,那么我该如何强制一个 org-mode 文件链接在 Emacs 中打开文件? - incandescentman
@incandescentman 我从未见过那个。哪些文件?TextEdit是什么? - choroba
TextEdit是一个外部文本编辑器(它是OSX的默认系统文本编辑器)。例如,在org-mode中,我有[[~/.hunspell_en_US]],这是我的用户本地字典。但是当我将光标放在该文件链接上并按Enter键时,它会在TextEdit中打开。 - incandescentman
我使用一个名为 open-with 的软件包,例如告诉 .pdf 文件在外部应用程序中打开,但我没有看到任何可能影响文本文件的配置。我猜我会将其作为一个新问题提出。谢谢! - incandescentman
我需要在前面加上 file: 才能使其正常工作。否则它会出现“无法匹配模糊表达式:<文件名>”的错误。 - hraban

17

如果我理解问题正确,您可以使用两个org-mode命令自动完成它:

将光标移动到php文件中的一行并使用M-x org-store-link

进入org文件并使用C-c C-lM-x org-insert-link,然后按照迷你缓冲区中的提示进行操作。

完成后,单击链接或当光标位于其上时使用C-c C-o打开链接。

我将org-store-link设置为C-c l,而将org-insert-link设置为默认的C-c C-l。这使得这个过程非常方便和快速执行。

享受org-mode带来的乐趣。


这里只是留个评论,以防有人遇到类似我的问题:如果标题中有时间戳,将链接存储并插入到org文件中将无法正常工作。 - Metropolis
关键是告诉emacs要用哪个软件打开它。否则它会在emacs上打开keynote文件。 - undefined

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