假期一定好好研究一下eaf
luhuaei太厉害了,今天早上给EAF PDF Viewer支持了Vimium Jump后,又加了一个搜索补丁
在EAF PDF插件中,按 s 键输入需要搜索的字符,即可在PDF显示匹配的位置,再按一下 s 按键取消关键字高亮。
EAF PDF Viewer越来越好用啦!
外接键盘…
不能跨平台是个大问题, 不是每个人都能自由更换操作系统. 在一个系统下养成的操作习惯, 换到另外一个系统不得不丢弃, 这种代价挺大. 特别是emacs的使用, 基本已经形成肌肉记忆, 这种情况下再丢弃会比较痛苦.
是不是可以考虑把eaf独立成一个app? 比如用pyqt来开发该app, 然后跟emacs通信, 两者之间互动. 这样就能跨平台了.
粘贴技术需要Linux X11 Reparent技术,和PyQT无关,Windows和Mac也许有类似 Reparent 的技术,只是我不用这些系统,有能力的黑客去贡献吧。
如果真的没有有能力的人去贡献Reparent技术,要不就用Linux, 要不就不用EAF。
EAF主要是给自己用的,跨不跨平台我不关心。
PyQt本身就是跨平台的,跨平台技术的关键点是要在Windows和Mac上找到替换 X11 Reparent 的技术,README 写的非常清楚。
虽然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细节保持一致:
- 第一次按 Ctrl + s 或 Ctrl + r 键进入搜索模式,输入搜索关键字
- 第二次按 Ctrl + s 或 Ctrl + r 键的时候,继续搜索
- 按 Ctrl + g 取消搜索
社区的大神们都好厉害,每天发好多补丁,多的我有时候都看不过来了。