超越编辑器的边界(在Emacs中用XWidget浏览网页)
今天Reddit 上有消息说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 的评测结果也不赖:
甚至还能看YouTube!
但是出了通过点击链接导航之外,其他的操作问题就多了. 每次我试图与视频交互时,声音的音量都会被调到最大,然后整个widget开始一闪一闪的. 搜索其他的视频的时候也不自然. 你可以点击文本框,但是任何你输入的键都会被当成是Emacs命令的快捷键. 正确的做法是按下回车,然后会有一个read-string的提示符让你输入要填入文本框的内容. Except when it doesn’t:
目前,整合的过程才刚刚开始. 除了上面提到的问题外,你还时不时的会遇到其他一些问题:
更改window大小或者拖拉滚动条后,会看到buffer上有一段文字提醒你要再按下 a
键来重写调整widget的大小. 但它没有跟你说实际上你可能还需要再把滚动条拉上去才行…
我觉得这种借助webkit并在此基础上支持JavaScript的方法虽然与一般方法反其道而行但更容易得到我们想要的结果。它能用更少的Lisp代码得到更好的结果。