在Emacs org-mode文件中,当我点击PDF文件时,它会在PDF查看器中打开。同样地,当我点击链接时,它会在Web浏览器中打开。但是,当我点击图片文件的路径时,字节流以文本形式在编辑器中打开。如何配置Emacs/org-mode以使用指定的应用程序打开图像文件,例如图像编辑器或浏览器?
在Emacs org-mode文件中,当我点击PDF文件时,它会在PDF查看器中打开。同样地,当我点击链接时,它会在Web浏览器中打开。但是,当我点击图片文件的路径时,字节流以文本形式在编辑器中打开。如何配置Emacs/org-mode以使用指定的应用程序打开图像文件,例如图像编辑器或浏览器?
org-file-apps
用于控制在单击类似URL的文本时要执行什么操作。((auto-mode . emacs)
("\\.mm\\'" . default)
("\\.x?html?\\'" . default)
("\\.pdf\\'" . default))
如org-file-apps帮助文档所述:auto-mode
会匹配任何在auto-mode-alist
中匹配到的文件,因此Emacs能处理的所有文件都可以使用它来打开。使用emacs
命令,将在Emacs中打开大多数文件。
你可能已经在auto-mode-alist中配置了图像文件扩展名。你可以通过以下方法覆盖这个列表(例如,对于png文件):
(add-hook 'org-mode-hook
'(lambda ()
(setq org-file-apps
(append '(
("\\.png\\'" . default)
) org-file-apps ))))
使用这段代码后,当我点击像这样的链接:file:///e:/jrx/emacs/image.png
它使用与该文件扩展名相关联的默认操作系统程序,在emacs外部打开文件。
您不必更改org-file-apps-defaults-windowsnt
,org-file-apps-defaults-gnu
或org-file-apps-defaults-macosx
以使用与文件扩展名相关联的操作系统默认程序。
append
和 add-hook 'org-mode-hook
结合使用似乎会在每次调用 Org-mode 时都向列表中添加元素。这可能会导致列表被大量填充 "\\.png\\'" . default
。你可以考虑使用类似于 https://dev59.com/-moy5IYBdhLWcg3wA5WC#8836108 中的 add-to-list
构造来避免这种问题。 - N.N.这要根据您使用的操作系统而定,但应该可以通过 org-file-apps
进行配置。
open
(或 open -a 应用程序名称
)来自动打开文件。xdg-open
(需要一些设置)。open
(在控制台中)。请查看变量 org-file-apps-defaults-windowsnt
、org-file-apps-defaults-gnu
或 org-file-apps-defaults-macosx
,具体取决于您的平台。
xdg-open
问题的人,可以链接到https://askubuntu.com/questions/646631/emacs-doesnot-work-with-xdg-open :) - xeruf