Emacs是否有浮动窗口?

本人是个vimer。emacs偶尔用用没深入,用了下magit有点好用。。想知道emacs是否有浮动窗口呢?一直用neovim floatwindow 很舒服。

你说的是 child frame 吗?

hmm 不太清楚在emacs叫什么。。vim是floatwindow就是在窗口上会新建一个浮动的窗口,不会推动原有的窗口

make-frame ?

是不是这样? emacs

这种?你好有的

对 就是这种。

楼上给答案了。就是这样的。

Emacs里有两种实现方式,一种基于overlay,缺点是遇到Unicode或者不等宽的字符会出问题,不过支持Terminal。另一种是基于Emacs26加入的childframe机制,可以完美显示,不过不支持TUI(不过终端下的显示元素都比较单一)。

你要具体应用还是底层API封装库?前者有companylsp-ui这些应用。API封装有popupposframe

3 个赞

其实还有第三种,xwidget

基于overlay的不能跨window

基于frame的机制有点重

基于xwidget的不能在终端下面用

所以 emacs 现在 应该是

没有

popup应该算是。child frame也还好。

我寻思floating window和childframe是一样的。

popup受限于当前的buffer, 他不能在别的buffer中显示。

而知乎专栏的图片中明确是可以横跨多个window的。

child frame是个frame ,会有多个window 。 人家只是要一个window而已。

本质上和 child frame 有什么区别呢?frame 限定为一个 window 即可。就好像 floating window 也可以拆分子窗口(如果愿意的话)。需求上 child frame是完全满足的,只是概念不同而已。底层无非就是在当前窗口再绘制窗口,实现可能不同,但为什么一定要完全相同呢?楼主就是想问有没有类似的功能满足需求吧。

可能是我理解错了

我以为他终端下也能用

下载了一个 好像没有找到相应的函数

如果只是GUI才支持的话 我就没话说了

感谢各位。。还没研究emacs里的这些window。。大概就是想问下有没有类似的。最近想深入玩玩emacs了。可能vim有点用腻了。。之前把照着emacs的spaceline做了vim的spaceline。今天又折腾了下。。试着在vim里弄了个magit。

。。还是没emacs的强大。。最近有空好好学学emacs。谢谢各位大佬

你肯定很愿意用 spacemacs,虽然我不用。

建议从 Doom Emacs 或者 spacemacs 这样的用 evil 的配置开始,比较符合 vim 用户的习惯

我不喜欢用别人的配置。。vim我都是自己配置框架star也有快400啦