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

今天无意在 eaf 网页键盘按到 p 键, 就崩溃了

Traceback (most recent call last):
  File "/home/****/.emacs.d/site-lisp/emacs-application-framework/core/view.py", line 106, in adjust_aspect_ratio
    self.layout.setContentsMargins(
TypeError: arguments did not match any overloaded call:
  setContentsMargins(self, int, int, int, int): argument 1 has unexpected type 'float'
  setContentsMargins(self, QMargins): argument 1 has unexpected type 'float'

Process *eaf* aborted (core dumped)

已经修复了,请更新。

1 个赞

请问 eaf windows下安装的问题解决了吗?谢谢!

尝试过EAF好多次,但在mac上总用着不顺手。在mac上minibuffer显示不全,被覆盖住了,不知道是不是已知的问题。

是已知的问题,macOS 系统的机制,你可以看一下 eaf 中文 wiki 部分,有说明。

macos上面用emacsclient打开文件的时候,当前的window并没有切换到该文件,好像在后台打开一样,还需要我在手动切一次到该文件

不要用 emacsclient 和 EAF混用,不支持,主要是没时间。

如果你发现怎么解决,欢迎发送 PR.

用EAF多了以后,会打开很多很多 file-manager 的buffer。

这个补丁的作用是,当EAF发现有重复的 file-manager 的buffer, 同时这些buffer不显示就直接清理掉重复 buffer, 保证每个路径只有一个 buffer 存在。

这样我就可以放心的打开任意文件,又不用花费时间去清理他们。

lsp-bridge 搞完终于把 eaf-git 的 Dialog 组件重写了,现在可以在底部显示全部按键帮助,方便

@EdmondFrank 大佬把 eaf-git 代码块的stage、unstage和delete 都搞完了,现在 100% 可以替代 magit 了,而且 Hunk 的操作比 magit 还方便,j/k 换文件, n/p 切换代码块, S/D 操作代码块, 超级快。

说一件怪事,包括 eaf 在内 gitee 很多项目都强制闭源了,比如 https://gitee.com/emacs-eaf/eaf-js-video-player

不知道 gitee 怎么想的

政策要求,需要过审查才能开源 :mask:

亲测,在M1 Mac上安装eaf,已经可以以native形式运行,不需要走rosetta了(qt6和webengine等都有arm了)

可以去掉 eaf–mac-enable-rosetta 选项,以及wiki中的使用arch x86_64兼容安装的方式

以native的方式运行效率更高,安装也省事

有一点需要注意的是,command tools默认安装一个python3.8.9和homebrew的python产生覆盖,导致install_eaf.py安装的package在emacs里找不到。需要手动设置一些环境变量,

export PATH=/opt/homebrew/bin:$PATH
export PATH=/opt/homebrew/opt/[email protected]/libexec/bin:$PATH

并且把pip编译的两个包也加到环境里(默认索引不到,emacs在load eaf的时候会直接崩溃),可以注意第一次安装pyqt6时的编译提示. 找到路径后加入即可,例如:

export PATH=/Users/liuyi/Library/Python/3.9/bin:$PATH

同时,建议如下配置解决emacs内的路径问题


    (add-hook 'inferior-python-mode-hook
              #'(lambda nil
                  (process-query-on-exit-flag
                   (get-process "Python"))))
    (eval-after-load 'python
      #'(lambda nil
          (progn
            (if
                (and
                 (executable-find "python3")
                 (string= python-shell-interpreter "python"))
                (progn
                  (setq python-shell-interpreter "python3")))
            (eval-after-load 'exec-path-from-shell
              #'(lambda nil
                  (exec-path-from-shell-copy-env "PYTHONPATH"))))))

这里我用了exec-path-from-shell这个包来获取python path,解决一些第三方python包在Mac上找不到的情况

1 个赞

m1用户之前使用rosetta转译运行的,可以试试这个方法切换到arm,速度杠杠的,eaf非常丝滑,没有之前的那种偶尔顿顿的感觉

大家可以试试有没有什么问题,不用转译后eaf比edge浏览器还快哈哈哈,回头可以请懒猫帮忙更到wiki上

可以给m1做一个补丁吗?

1 个赞

今天给eaf-git新写了一个补丁

专门为方便合并Github PR而设计的。

在eaf-git首页按a键输入PR的number,自动fetch PR并创建一个新的分支用于测试Github PR, 非常非常的方便。

请教大佬,EAF打开调试信息之后 (setq eaf-enable-debug t),EAF插件启动不了,eaf buffer 显示的 python 路径有问题,请问该如何处理,日志如下:

"C:\Users\Yanyang\AppData\Local\Programs\Python\Python310/python.exe": not in executable format: File format not recognized
No executable specified, use `target exec'.
No stack.

Process *eaf* finished

从你的报错信息看就是这个错误信息啊,这个不是一个正常的执行文件格式。

你自己搜索一下吧。

lsp-bridge的核心技术来源于EAF, lsp-bridge开发的过程中, 发现了很多可以反过来提升EAF的技术, EAF最近主要有以下提升:

  1. python 和 elisp 之间消息传递用 sexp 替代了 base64, 现在可以支持任意复杂的数据结构在Python/Elisp两边交换, 因为去掉了 base64 的编解码过程, EAF的性能会有一定提升
  2. 修复了调用 eval-in-emacs 时经常返回 “Got too many arguments in the reply” 的错误信息
  3. 对EAF所有应用的npm依赖包进行了升级, 解决了新用户安装EAF产生的依赖报错和白屏问题

建议所有EAF用户都升级一下。

7 个赞