从今天开始,Emacs里面可以运行任何你想要的程序 (Linux & Windows & Mac & BSD)

假期一定好好研究一下eaf

EAF本质就是PyQt5, 加上一些 hacking trick。

作为开发者,花半个小时学好 PyQt5 http://zetcode.com/gui/pyqt5/ 就可以上手了。

2 个赞

luhuaei太厉害了,今天早上给EAF PDF Viewer支持了Vimium Jump后,又加了一个搜索补丁

在EAF PDF插件中,按 s 键输入需要搜索的字符,即可在PDF显示匹配的位置,再按一下 s 按键取消关键字高亮。

EAF PDF Viewer越来越好用啦!

3 个赞

外接键盘…

不能跨平台是个大问题, 不是每个人都能自由更换操作系统. 在一个系统下养成的操作习惯, 换到另外一个系统不得不丢弃, 这种代价挺大. 特别是emacs的使用, 基本已经形成肌肉记忆, 这种情况下再丢弃会比较痛苦.

是不是可以考虑把eaf独立成一个app? 比如用pyqt来开发该app, 然后跟emacs通信, 两者之间互动. 这样就能跨平台了.

1 个赞

粘贴技术需要Linux X11 Reparent技术,和PyQT无关,Windows和Mac也许有类似 Reparent 的技术,只是我不用这些系统,有能力的黑客去贡献吧。

如果真的没有有能力的人去贡献Reparent技术,要不就用Linux, 要不就不用EAF。

EAF主要是给自己用的,跨不跨平台我不关心。

PyQt本身就是跨平台的,跨平台技术的关键点是要在Windows和Mac上找到替换 X11 Reparent 的技术,README 写的非常清楚。

1 个赞

虽然linux在桌面世界还很弱小,但是大势所趋,我认为应该从小学就开始.中学,大学都应该强制使用linux作为教学环境.

最新的版本,按 n 键跳到下一个关键字的位置,按 N 键跳到最后一个关键字的位置。

能不能指点一下reparent具体是哪几个函数,在哪个文件里?我有空帮Windows实现一下

这个一开始就了解了,就是不知道x11这个黑科技在其他平台上是否能实现,特别是macos这种限制很严格的系统。windows上搞过一段时间mfc,没接触过这个功能。

emacs-application-framework/view.py at master · emacs-eaf/emacs-application-framework · GitHub 里的reparent函数

只是一点小建议,不用太在意。 想象了一下,一个独立app的eaf好像也不错,就像lsp可以跟emacs紧密结合,一个gui进程应该也能实现很好的结合,好像还没见过这样的尝试。

本来就是独立的APP,用DBus通信,不过用Elisp自动从Emacs里启动而已。你可以手动启动然后再从Emacs上连接Dbus总线,一样的。

linux是相当不错,超爱debian,用了很多年。就是一些国内厂商对它支持不好,几个常用桌面软件不能用。 另外,对mac的触控板实在是太喜欢了。

我的意思是,一个独立的gui app,来管理eaf所有的模块或插件,每个eaf模块,比如浏览器,pdf阅读器,图片浏览器等,是它的一个子窗口,属于同一个进程。它再提供一套通用接口跟emacs通信。 类似emacs,不过它里面全部是pyqt插件,就是一个pyqt环境。

eaf本来就是和emacs协作的,分离出来那eaf还有啥意义?

主要是跨平台简单了, 而且eaf本身也成了一个有丰富功能的独立app. 但是两个独立窗口之间的结合可能没有在一个窗口里那么紧密了, 会失去不少功能. 比如左边显示emacs的buffer, 右边显示浏览器, 这种操作本来是emacs内部实现, 现在变成了两个独立窗口之间的互动, 还有输入焦点的切换, 可能会受限于窗口管理器.

对于普通的窗口管理器, 左右并排显示可以通过让两个窗口各自占用一半屏幕宽度来实现, 比如自身缩小宽度的同时, 通知对方也缩小宽度. 输入焦点切换一般程序是可以自己控制的, 比如把焦点切换给对方窗口. 其他功能比如在emacs里让eaf窗口打开一个链接这种比较简单.

想想还是挺复杂的. 暂时看来还没有绝对的优势.

之前看eaf代码的时候搜索过, mac os 似乎没有直接对应的函数.

社区大神提交了一个新的补丁

现在可以直接在EAF Browser里面按 Ctrl + s 或者 Ctrl + r 进行浏览器页面内容搜索了,所有的搜索细节都和Emacs细节保持一致:

  1. 第一次按 Ctrl + s 或 Ctrl + r 键进入搜索模式,输入搜索关键字
  2. 第二次按 Ctrl + s 或 Ctrl + r 键的时候,继续搜索
  3. 按 Ctrl + g 取消搜索

社区的大神们都好厉害,每天发好多补丁,多的我有时候都看不过来了。

7 个赞