请教Emacs GUI的一些问题?

1,Emacs的Status Bar在众多编辑器中别具一格,甚至在Terminal里也能显示,很想知道Emacs是怎么实现这个mode-line的?

2,Emacs的GUI既既提供了Windows或者Mac的图形界面,也提供了Terminal的命令行界面,用的什么GUI库?这些GUI库是跨平台的吗?GUI和Terminal里的实现一样吗?

3,Emacs的内核是elisp,我们能把Emacs的内核提取出来吗?通过docer,web,electron,QT等环境进行二次包装,形成新的GUI发行版吗?

对你提的第3个问题同样感兴趣,希望大神解答。隔壁neovim已经把内核和前端分开了,所以那边有oni这样的项目,期待emacs能有对等的

曾经在 hacker news 看到一篇文章,可以看看了解一下

Buttery Smooth Emacs

我找到一个Ymacs的在线类emacs实现,但应该不是emacs内核,而是自己实现了类Emacs的操作模式和命令,

刚刚在gitter上得到了部分解答。

Emacs将gui事件绑定到快捷键上,因此无论是在gui下,还是在terminal下,Emacs都可以相同的方式工作。

GUI以前Windows,X11,MacOS有分开的实现,现在应该已经统一换成Cairo了,Terminal的实现就是ncurses呗。

建议你上个图指出来,官方里没有叫status bar的东西,你是不是在说mode-line?

代价是性能有损失

Cairo应该只是2D的适量图形库吧,用来绘图的,应该有其他的gui组件库。

Emacs的Status Bar在众多编辑器中别具一格,甚至在Terminal里也能显示

vim不是也有mode-line吗?

所以你觉得emacs里有什么好画的呢?看起来Emacs要显示图片,文字样式,button等widget这些花里胡哨的功能,实际上这些都是Emacs自绘的,以前用的是宿主提供的绘图API,现在换成了cairo而已。

是在说menu bar吧,“File Edit Options”那一堆东西,估计一般人的配置文件没有不把它藏起来的,所以就不太记得了。。

没多少需求,但是有套上yet another UI的可能还是好的,比如在Emacs里鼠标滚动卡顿这种小问题可以得到解决。


翻上面的帖子发现onivim2将会支持直接使用所有VSCode插件:

Onivim 2 leverages the VSCode Extension Host process in its entirety - meaning, eventually, complete support for VSCode extensions and configuration.

是在说mode-line