如何用eww打开文件中本地html链接

org文件中, [[file:a1.html]] 的链接,用回车键或者鼠标点击时,会自动用外部浏览器打开。

请问:

1,如何让emacs自动用eww-open-file 打开,显示在本buffer中,需要如何增加配置代码?

2,或者新开一个buffer显示,我试了eww-open-in-new-buffer,发现这个函数调用的是 http://file:a1.html ,不成功,请赐教。谢谢!

1 个赞

改一下 org-file-apps 就行

在org-mode里面这样写[[eww:http://localhost/emacs][org中打开本地链接]] 然后鼠标点击文字或链接上c-c c-o,就是用eww-open-file打开,新开一个buffer显示,不需要写其它配置,在我windows电脑上是这样,其它应该也一致

謝謝,我在config.el下設置了(add-to-list 'org-file-apps ‘("\.html\’" . eww-open-file))

得到錯誤提示:user-error: Please see Org News for version 9.0 about ‘org-file-apps’–Lisp error: eww-open-file

環境是doom新版。

谷歌了一下,沒有找到答案,難道是換用新的寫法了?

如果没有本地http服务器,这样写也是一样的结果 [[eww:file:///d:/www/emacs.htm][org中打开本地链接]] ,但打开html文件,最好还是要有一个本地web服务器(nginx或apache最佳)

謝謝,org文件寫成 [[eww:http://localhost/emacs][a1.html]]或者[[eww:a1.html]]都提示:no match - create this a new heading?(y or n)

a1.html和org文件在一個目錄下,請問我寫錯了什麼嗎?

没遇到过这种情况

[[eww:file:///a1.html][a1.html]]也是提示:no match - create this a new heading?(y or n)

看樣子org當作是內部鏈接了。

eww-open-file 只有一个参数,org 调用的时候会用两个参数(请看 org-file-apps 的文档)……

随便写个函数包装一下

(defun my-open-html-in-eww (file link)
  (eww-open-file file))
1 个赞

bingo,搞定了,謝謝謝謝

(add-to-list 'org-file-apps '("\\.html\\'" . my-open-html-in-eww))
(defun my-open-html-in-eww (file link)
  (eww-open-file file))