今天 Reddit(link:https://www.reddit.com/r/emacs/comments/4241oy/xwidget_branch_has_been_merged_into_emacs_251/) 上有消息说 xwidget branch 终于 merge 到 emacs-25 branch 中了,既然目前还没有关于使用该功能的评测出来,我决定自己亲自尝试一下。
构建的过程很简单:
git checkout emacs-25
./configure --with-x-toolkit=gtk3 --with-xwidgets
make
随后你可以在emacs中执行 M-x xwidget-webkit-browse-url 然后输入完整的 URL。注意是完整的URL. 如果你只输入 ~www.gnu.org~ 那只会显示一个空白的页面,需要输入完整的 http://www.gnu.org/ 才行。

结果就像这样。
html5test.com(link:http://html5test.com/) 的评测结果也不赖:

甚至还能看 YouTube

但是出了通过点击链接导航之外,其他的操作问题就多了。每次我试图与视频交互时,声音的音量都会被调到最大,然后整个 widget 开始一闪一闪的。
搜索其他的视频的时候也不自然,你可以点击文本框,但是任何你输入的键都会被当成是 Emacs 命令的快捷键,正确的做法是按下回车,然后会有一个 read-string 的提示符让你输入要填入文本框的内容。
Except when it doesn’t:

目前,整合的过程才刚刚开始。除了上面提到的问题外,你还时不时的会遇到其他一些问题:
更改 window 大小或者拖拉滚动条后,会看到 buffer 上有一段文字提醒你要再按下 a 键来重写调整 widget 的大小,但它没有跟你说实际上你可能还需要再把滚动条拉上去才行...
我觉得这种借助 webkit 并在此基础上支持 JavaScript 的方法虽然与一般方法反其道而行但更容易得到我们想要的结果。它能用更少的 Lisp 代码得到更好的结果。

