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

十分感谢大佬!!!我换成 mobaxterm试试.

今天写了一个参考补丁 We can use QWebChannel make JavaScript can call Python or Elisp funct… · emacs-eaf/emacs-application-framework@c6caa02 · GitHub

现在可以利用 QWebChannel 技术,直接让 JavaScript/Vue.js 函数反向调用Python和Elisp的函数。

以前只能 Elisp → Python → Vue.js 调用,现在可以双向调用了。

1 个赞

你们打开flac文件可以正常解析艺术家和专辑吗?

我这里显示 TagLib: FLAC::File::scan() – multiple Vorbis Comment blocks found, discarding

但是 vlc 和其他播放器可以正常显示

没测试过,我都是mp3

我试了试,用 taglib 一直没搞出来, 但是从 mutagen 的 metadata_blocks 里可以找出来

mutagen这个库有bug

是关于 ID3 的 bug 吗? Issues有提到吗

本质是每个ID3库都有自己的bug, 没有一个ID3库能解析所有的信息

我大概明白了, flac 的 VORBIS_COMMENT blocks 严格按照标准应该只有一个,但是 metaflac 等程序却允许解析多个, mutagen 作者在这个pr增加了对 multiple Vorbis Comment blocks 的支持,但是 taglib 第548行开始显示,它只保留第一个,其他的 discarding 了,于是我的flac(从网易云下载的)部分信息就丢了

老王觉得与 mutagen 比,pytaglib 更有优势吗? 我没怎么用过,请教一下

更新了最新的 eaf-master,在 windows 下面跑 npm install 遇到了问题

d:/emacs/etc/pluginbox/extension/intergration$ npm install

> [email protected] postinstall d:\emacs\etc\pluginbox\extension\intergration
> node install-node-apps.js

npm WARN [email protected] No description

audited 6 packages in 1.722s

1 package is looking for funding
  run `npm fund` for details

found 0 vulnerabilities

npm WARN [email protected] No description

audited 244 packages in 6.991s

13 packages are looking for funding
  run `npm fund` for details

found 1 moderate severity vulnerability
  run `npm audit fix` to fix them, or `npm audit` for details
npm WARN [email protected] No description

audited 1 package in 2.229s
found 0 vulnerabilities

npm WARN optional SKIPPING OPTIONAL DEPENDENCY: [email protected] (node_modules\fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for [email protected]: wanted {"os":"darwin","arch":"any"} (current: {"os":"win32","arch":"ia32"})
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: [email protected] (node_modules\watchpack-chokidar2\node_modules\fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for [email protected]: wanted {"os":"darwin","arch":"any"} (current: {"os":"win32","arch":"ia32"})
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: [email protected] (node_modules\webpack-dev-server\node_modules\fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for [email protected]: wanted {"os":"darwin","arch":"any"} (current: {"os":"win32","arch":"ia32"})

audited 1334 packages in 33.211s

75 packages are looking for funding
  run `npm fund` for details

found 111 vulnerabilities (1 low, 110 moderate)
  run `npm audit fix` to fix them, or `npm audit` for details
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: [email protected] (node_modules\fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for [email protected]: wanted {"os":"darwin","arch":"any"} (current: {"os":"win32","arch":"ia32"})
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: [email protected] (node_modules\watchpack-chokidar2\node_modules\fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for [email protected]: wanted {"os":"darwin","arch":"any"} (current: {"os":"win32","arch":"ia32"})
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: [email protected] (node_modules\webpack-dev-server\node_modules\fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for [email protected]: wanted {"os":"darwin","arch":"any"} (current: {"os":"win32","arch":"ia32"})

audited 1309 packages in 32.08s

76 packages are looking for funding
  run `npm fund` for details

found 110 moderate severity vulnerabilities
  run `npm audit fix` to fix them, or `npm audit` for details
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: [email protected] (node_modules\fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for [email protected]: wanted {"os":"darwin","arch":"any"} (current: {"os":"win32","arch":"ia32"})
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: [email protected] (node_modules\watchpack-chokidar2\node_modules\fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for [email protected]: wanted {"os":"darwin","arch":"any"} (current: {"os":"win32","arch":"ia32"})
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: [email protected] (node_modules\webpack-dev-server\node_modules\fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for [email protected]: wanted {"os":"darwin","arch":"any"} (current: {"os":"win32","arch":"ia32"})

audited 1293 packages in 32.685s

76 packages are looking for funding
  run `npm fund` for details

found 110 moderate severity vulnerabilities
  run `npm audit fix` to fix them, or `npm audit` for details
npm WARN [email protected] No description

audited 67 packages in 3.057s

5 packages are looking for funding
  run `npm fund` for details

found 0 vulnerabilities

npm WARN optional SKIPPING OPTIONAL DEPENDENCY: [email protected] (node_modules\fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for [email protected]: wanted {"os":"darwin","arch":"any"} (current: {"os":"win32","arch":"ia32"})
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: [email protected] (node_modules\watchpack-chokidar2\node_modules\fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for [email protected]: wanted {"os":"darwin","arch":"any"} (current: {"os":"win32","arch":"ia32"})
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: [email protected] (node_modules\webpack-dev-server\node_modules\fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for [email protected]: wanted {"os":"darwin","arch":"any"} (current: {"os":"win32","arch":"ia32"})

audited 1293 packages in 31.061s

76 packages are looking for funding
  run `npm fund` for details

found 110 moderate severity vulnerabilities
  run `npm audit fix` to fix them, or `npm audit` for details
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: [email protected] (node_modules\fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for [email protected]: wanted {"os":"darwin","arch":"any"} (current: {"os":"win32","arch":"ia32"})
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: [email protected] (node_modules\watchpack-chokidar2\node_modules\fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for [email protected]: wanted {"os":"darwin","arch":"any"} (current: {"os":"win32","arch":"ia32"})
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: [email protected] (node_modules\webpack-dev-server\node_modules\fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for [email protected]: wanted {"os":"darwin","arch":"any"} (current: {"os":"win32","arch":"ia32"})

audited 1309 packages in 31.498s

76 packages are looking for funding
  run `npm fund` for details

found 110 moderate severity vulnerabilities
  run `npm audit fix` to fix them, or `npm audit` for details
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: [email protected] (node_modules\fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for [email protected]: wanted {"os":"darwin","arch":"any"} (current: {"os":"win32","arch":"ia32"})
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: [email protected] (node_modules\webpack-dev-server\node_modules\fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for [email protected]: wanted {"os":"darwin","arch":"any"} (current: {"os":"win32","arch":"ia32"})
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: [email protected] (node_modules\watchpack-chokidar2\node_modules\fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for [email protected]: wanted {"os":"darwin","arch":"any"} (current: {"os":"win32","arch":"ia32"})

audited 1334 packages in 31.519s

75 packages are looking for funding
  run `npm fund` for details

found 111 vulnerabilities (1 low, 110 moderate)
  run `npm audit fix` to fix them, or `npm audit` for details

> [email protected] build d:\emacs\etc\pluginbox\extension\intergration\app\vue-demo
> vue-cli-service build


-  Building for production...
 DONE  Compiled successfully in 8497ms下午12:36:32

  File                                 Size               Gzipped

  dist\js\chunk-vendors.92c2867a.js    89.66 KiB          32.14 KiB
  dist\js\app.7c13d52d.js              2.88 KiB           1.32 KiB
  dist\css\app.606858ee.css            0.27 KiB           0.20 KiB

  Images and other types of assets omitted.

 DONE  Build complete. The dist directory is ready to be deployed.
 INFO  Check out deployment instructions at https://cli.vuejs.org/guide/deployment.html
      

> [email protected] build d:\emacs\etc\pluginbox\extension\intergration\app\system-monitor
> vue-cli-service build


-  Building for production...
 WARNING  Compiled with 3 warnings下午12:37:05

 warning  

asset size limit: The following asset(s) exceed the recommended size limit (244 KiB).
This can impact web performance.
Assets: 
  js/chunk-vendors.525a66d3.js (708 KiB)

 warning  

entrypoint size limit: The following entrypoint(s) combined asset size exceeds the recommended limit (244 KiB). This can impact web performance.
Entrypoints:
  app (720 KiB)
      js/chunk-vendors.525a66d3.js
      css/app.5261a68f.css
      js/app.d33125a6.js


 warning  

webpack performance recommendations: 
You can limit the size of your bundles by using import() or require.ensure to lazy load some parts of your application.
For more info visit https://webpack.js.org/guides/code-splitting/

  File                                 Size               Gzipped

  dist\js\chunk-vendors.525a66d3.js    708.45 KiB         195.02 KiB
  dist\js\app.d33125a6.js              10.78 KiB          3.51 KiB
  dist\css\app.5261a68f.css            1.18 KiB           0.41 KiB

  Images and other types of assets omitted.

 DONE  Build complete. The dist directory is ready to be deployed.
 INFO  Check out deployment instructions at https://cli.vuejs.org/guide/deployment.html
      

> [email protected] build d:\emacs\etc\pluginbox\extension\intergration\app\music-player
> vue-cli-service build


-  Building for production...
 DONE  Compiled successfully in 12594ms下午12:37:30

  File                                 Size               Gzipped

  dist\js\chunk-vendors.509a4d5d.js    210.36 KiB         69.16 KiB
  dist\js\app.38495db2.js              8.58 KiB           2.86 KiB
  dist\css\app.e28f7ada.css            1.57 KiB           0.54 KiB

  Images and other types of assets omitted.

 DONE  Build complete. The dist directory is ready to be deployed.
 INFO  Check out deployment instructions at https://cli.vuejs.org/guide/deployment.html
      

> [email protected] install d:\emacs\etc\pluginbox\extension\intergration\app\terminal\node_modules\node-pty-prebuilt-multiarch
> prebuild-install || node scripts/install.js


> [email protected] postinstall d:\emacs\etc\pluginbox\extension\intergration\app\terminal\node_modules\node-pty-prebuilt-multiarch
> node scripts/post-install.js

[email protected] d:\emacs\etc\pluginbox\extension\intergration\app\terminal\node_modules\node-pty-prebuilt-multiarch
[email protected] d:\emacs\etc\pluginbox\extension\intergration\app\terminal\node_modules\nan
[email protected] d:\emacs\etc\pluginbox\extension\intergration\app\terminal\node_modules\prebuild-install
[email protected] d:\emacs\etc\pluginbox\extension\intergration\app\terminal\node_modules\detect-libc
[email protected] d:\emacs\etc\pluginbox\extension\intergration\app\terminal\node_modules\expand-template
[email protected] d:\emacs\etc\pluginbox\extension\intergration\app\terminal\node_modules\github-from-package
[email protected] d:\emacs\etc\pluginbox\extension\intergration\app\terminal\node_modules\minimist
[email protected] d:\emacs\etc\pluginbox\extension\intergration\app\terminal\node_modules\mkdirp-classic
[email protected] d:\emacs\etc\pluginbox\extension\intergration\app\terminal\node_modules\napi-build-utils
[email protected] d:\emacs\etc\pluginbox\extension\intergration\app\terminal\node_modules\node-abi
[email protected] d:\emacs\etc\pluginbox\extension\intergration\app\terminal\node_modules\semver
[email protected] d:\emacs\etc\pluginbox\extension\intergration\app\terminal\node_modules\noop-logger
[email protected] d:\emacs\etc\pluginbox\extension\intergration\app\terminal\node_modules\npmlog
[email protected] d:\emacs\etc\pluginbox\extension\intergration\app\terminal\node_modules\are-we-there-yet
[email protected] d:\emacs\etc\pluginbox\extension\intergration\app\terminal\node_modules\delegates
[email protected] d:\emacs\etc\pluginbox\extension\intergration\app\terminal\node_modules\readable-stream
[email protected] d:\emacs\etc\pluginbox\extension\intergration\app\terminal\node_modules\core-util-is
[email protected] d:\emacs\etc\pluginbox\extension\intergration\app\terminal\node_modules\inherits
[email protected] d:\emacs\etc\pluginbox\extension\intergration\app\terminal\node_modules\isarray
[email protected] d:\emacs\etc\pluginbox\extension\intergration\app\terminal\node_modules\process-nextick-args
[email protected] d:\emacs\etc\pluginbox\extension\intergration\app\terminal\node_modules\safe-buffer
[email protected] d:\emacs\etc\pluginbox\extension\intergration\app\terminal\node_modules\string_decoder
[email protected] d:\emacs\etc\pluginbox\extension\intergration\app\terminal\node_modules\util-deprecate
[email protected] d:\emacs\etc\pluginbox\extension\intergration\app\terminal\node_modules\console-control-strings
[email protected] d:\emacs\etc\pluginbox\extension\intergration\app\terminal\node_modules\gauge
[email protected] d:\emacs\etc\pluginbox\extension\intergration\app\terminal\node_modules\aproba
[email protected] d:\emacs\etc\pluginbox\extension\intergration\app\terminal\node_modules\has-unicode
[email protected] d:\emacs\etc\pluginbox\extension\intergration\app\terminal\node_modules\object-assign
[email protected] d:\emacs\etc\pluginbox\extension\intergration\app\terminal\node_modules\signal-exit
[email protected] d:\emacs\etc\pluginbox\extension\intergration\app\terminal\node_modules\string-width
[email protected] d:\emacs\etc\pluginbox\extension\intergration\app\terminal\node_modules\code-point-at
[email protected] d:\emacs\etc\pluginbox\extension\intergration\app\terminal\node_modules\is-fullwidth-code-point
[email protected] d:\emacs\etc\pluginbox\extension\intergration\app\terminal\node_modules\number-is-nan
[email protected] d:\emacs\etc\pluginbox\extension\intergration\app\terminal\node_modules\strip-ansi
[email protected] d:\emacs\etc\pluginbox\extension\intergration\app\terminal\node_modules\ansi-regex
[email protected] d:\emacs\etc\pluginbox\extension\intergration\app\terminal\node_modules\wide-align
[email protected] d:\emacs\etc\pluginbox\extension\intergration\app\terminal\node_modules\set-blocking
[email protected] d:\emacs\etc\pluginbox\extension\intergration\app\terminal\node_modules\pump
[email protected] d:\emacs\etc\pluginbox\extension\intergration\app\terminal\node_modules\end-of-stream
[email protected] d:\emacs\etc\pluginbox\extension\intergration\app\terminal\node_modules\once
[email protected] d:\emacs\etc\pluginbox\extension\intergration\app\terminal\node_modules\wrappy
[email protected] d:\emacs\etc\pluginbox\extension\intergration\app\terminal\node_modules\rc
[email protected] d:\emacs\etc\pluginbox\extension\intergration\app\terminal\node_modules\deep-extend
[email protected] d:\emacs\etc\pluginbox\extension\intergration\app\terminal\node_modules\ini
[email protected] d:\emacs\etc\pluginbox\extension\intergration\app\terminal\node_modules\strip-json-comments
[email protected] d:\emacs\etc\pluginbox\extension\intergration\app\terminal\node_modules\simple-get
[email protected] d:\emacs\etc\pluginbox\extension\intergration\app\terminal\node_modules\decompress-response
[email protected] d:\emacs\etc\pluginbox\extension\intergration\app\terminal\node_modules\mimic-response
[email protected] d:\emacs\etc\pluginbox\extension\intergration\app\terminal\node_modules\simple-concat
[email protected] d:\emacs\etc\pluginbox\extension\intergration\app\terminal\node_modules\tar-fs
[email protected] d:\emacs\etc\pluginbox\extension\intergration\app\terminal\node_modules\chownr
[email protected] d:\emacs\etc\pluginbox\extension\intergration\app\terminal\node_modules\tar-stream
[email protected] d:\emacs\etc\pluginbox\extension\intergration\app\terminal\node_modules\bl
[email protected] d:\emacs\etc\pluginbox\extension\intergration\app\terminal\node_modules\buffer
[email protected] d:\emacs\etc\pluginbox\extension\intergration\app\terminal\node_modules\base64-js
[email protected] d:\emacs\etc\pluginbox\extension\intergration\app\terminal\node_modules\ieee754
[email protected] d:\emacs\etc\pluginbox\extension\intergration\app\terminal\node_modules\bl\node_modules\readable-stream
[email protected] d:\emacs\etc\pluginbox\extension\intergration\app\terminal\node_modules\fs-constants
[email protected] d:\emacs\etc\pluginbox\extension\intergration\app\terminal\node_modules\tar-stream\node_modules\readable-stream
[email protected] d:\emacs\etc\pluginbox\extension\intergration\app\terminal\node_modules\tunnel-agent
[email protected] d:\emacs\etc\pluginbox\extension\intergration\app\terminal\node_modules\which-pm-runs
[email protected] d:\emacs\etc\pluginbox\extension\intergration\app\terminal\node_modules\ws
[email protected] d:\emacs\etc\pluginbox\extension\intergration\app\terminal\node_modules\xterm
[email protected] d:\emacs\etc\pluginbox\extension\intergration\app\terminal\node_modules\xterm-addon-attach
[email protected] d:\emacs\etc\pluginbox\extension\intergration\app\terminal\node_modules\xterm-addon-fit
[email protected] d:\emacs\etc\pluginbox\extension\intergration\app\terminal\node_modules\xterm-addon-search
[email protected] d:\emacs\etc\pluginbox\extension\intergration\app\terminal\node_modules\xterm-addon-web-links
audited 2 packages in 348.282s

1 package is looking for funding
  run `npm fund` for details

found 0 vulnerabilities

网络上面搜索了相关报错信息,大概有两个解决方案,一个是 nodejs 版本不对,我在官网更新到最新版本,又跑了一遍,同样的报错信息;另一个是把 fsevents 变成可选的依赖,但是我搜索 app 目录,有好几个都依赖它,所以根本行不通。

目前的现象是打开终端空白之后自动退出,音乐播放器空白。

每个JS app的目录都要 npm install 一下,不光是root目录

今天重新画了一下EAF的架构图,增加了 JS 和 Python互调用的部分,方便大家理解整体架构和脉络。

4 个赞

app 下面需要 npm install 的都弄好了,而且看警告信息应该是没有安装上 fsevents 这个, app 目录下的 node_modules 也并没有 fsevents

npm WARN optional SKIPPING OPTIONAL DEPENDENCY: [email protected] (node_modules\fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for [email protected]: wanted {"os":"darwin","arch":"any"} (current: {"os":"win32","arch":"ia32"})
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: [email protected] (node_modules\watchpack-chokidar2\node_modules\fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for [email protected]: wanted {"os":"darwin","arch":"any"} (current: {"os":"win32","arch":"ia32"})
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: [email protected] (node_modules\webpack-dev-server\node_modules\fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for [email protected]: wanted {"os":"darwin","arch":"any"} (current: {"os":"win32","arch":"ia32"})

每个JS app目录下, npm install 执行完再执行 npm run build 命令

okay

还有一个现象就是安装了 eaf 依赖的所有 node 模块之后,尤其是 vue,启动时间明显增加,从十几秒到一分钟以上,这还好,毕竟不经常重启 emacs,但是在使用过程中也明显卡顿,M-x 都差不多要十几秒才能弹出来。。。

之前没有更新 eaf 都是正常的,而且之前的版本安装 vue 之后也是卡得很,请问这个是不是和电脑配置相关

更新: eaf 目录下 npm install,然后 app 目录各模块下 npm install, npm run build,一切正常,没有报错,重启 emacs 之后,仍然打不开需要 build 的 app

估计是你windows环境导致的吧,我不用windows

可能吧,谢谢回复

manjaro 执行install-eaf.sh 报如下错,有什么解决方法么

删除pdf中的标注时出错。

[EAF/pdf-viewer] Cannot execute function: add_annot_strikeout_or_delete_annot (5ef1-4b7b-953b-31b9-65d3-73b3-79b6)

开启debug显示AttributeError:

Traceback (most recent call last):
  File "/home/dn/.emacs.d/site-lisp/emacs-application-framework/eaf.py", line 346, in execute_function
    buffer.execute_function(function_name)
  File "/home/dn/.emacs.d/site-lisp/emacs-application-framework/core/buffer.py", line 272, in execute_function
    getattr(self, function_name)()
  File "/home/dn/.emacs.d/site-lisp/emacs-application-framework/app/pdf-viewer/buffer.py", line 178, in add_annot_strikeout_or_delete_annot
    self.buffer_widget.annot_handler("delete")
  File "/home/dn/.emacs.d/site-lisp/emacs-application-framework/app/pdf-viewer/buffer.py", line 1294, in annot_handler
    if annot.parent:
AttributeError: 'NoneType' object has no attribute 'parent'

@manateelazycat 大佬看看如何解决?