vertico-posframe, 喜欢的同学拿去

这个暂时处理不了,因为我不知道在 vertico 下如何获取minibuffer激活之前激活的window,

大佬,这个 New function. 是解决什么问题的?是新的计算位置的函数吗?更新后还是会遇到上述问题呢。

这个问题挺想解决的。没有这个问题就:selectrum + mini-frame + posframe = selectrum-posframe了。

哈哈,我没做什么特别的配置。

我使用的是用 Nix 上 emacs-overlay 安装的 gccemacs,当然也是 macOS。

我的配置地址:GitHub - ixnij/dotfiles: The configuration files of editors, shells and so on.

啊,竟然激活mode就能顺利使用了 :+1:请问有遇到过我上述的问题123吗? 尝试一下这样配置看看: (setq vertico-posframe-poshandler 'posframe-poshandler-point-window-center) 意思是,在高亮行的下一行居window中间弹出。

解决这个问题的,用这个 poshandler 之后,弹出的 posframe 会放到 frame 中间,而不是 window 中间。

从报错信息看不出什么原因,你如果能定位到哪行代码报错,估计就好解决了。

这个问题应该暂时解决了

试试最新版的 posframe 吧,也许解决了

感谢大佬! :pray:测试完了,我的环境:macos big sur 11.5.1 emacs-plus 29.0.5

在fullscreen和maximized下,表现很好。一个字,帅。就是我心念念的“在高亮行的下一行居window中间弹出” :grin:

还发现个小问题,在非fullscreen和非maximized下,posframe找不准最左侧第一个window的位置(下图一,与上图比较),在其他新开(C-x 2... C-x 3...)的window时位置就很准确(下图二)。

posframe-poshandler-p0.5p0-to-f0.5p1 试试这个 poshandler, 这个 poshandler 就是居中到 frame 的

这个 poshandler运行很好,没出现上述这个小问题,位置找得很准。很帅 :+1:为了和posframe-poshandler-point-window-center命名一致,建议将posframe-poshandler-p0.5p0-to-f0.5p1 更名为posframe-poshandler-point-frame-center

我其实觉得 posframe-poshandler-point-window-center 不是一个好名字,只是由于兼容性问题,我无法更改了, 心得命名规则虽然看起来有点乱,但是很有规律。

至此,selectrum-posframe = selectrum + mini-frame + posframe 的方案就基本定型了。

只是有个小瑕疵,当弹窗方式为 posframe-poshandler-point-window-centerposframe-poshandler-p0.5p0-to-f0.5p1时,启动emacs后首次激活posframe,在水平方向上找不到位置,会在emacs的中点垂线上弹出,第二次之后激活posframe就能找准方向了。

说实话,让 mini-frame 使用 poshandler 也只能是凑合使用,毕竟 poshandler 是专门为 posframe 设计的。

目前[selectrum + mini-frame + posframe]的表现已经很满意了,瑕不掩瑜。谢谢!

顺手也测试了posframe-poshandler-p0.5p0-to-f0.5p1在vertico-posframe和ivy-frame中的表现:

vertico-posframe主要还是上面提到的问题3,暂时用不了这个posframe了;

ivy-frame表现很稳定,没出现什么问题(如下图)。 :+1:

另外,顺便再请教一个问题 :pray:

我在 Window Frame Parameters 找了上图红圈两个参数,但是都不能成功去掉ivy-posframe的灰色边框,这是啥情况呢?我配置写错了吗?

试试最新的 vertico-posframe,应该可以了

运行 posframe-delete-all 之后,再看看有没有效果。

这个最新版的 posframe 试着修复了。

:astonished:吃个饭的时间就修复好,大佬高效,都没问题了。 :+1:

M-x posframe-delete-all 之后还是不行,我尝试设置背景色为蓝色是有效的,说明这样写在 (use-package …) 里的逻辑或用法没问题。麻烦您看看,谢谢! :pray: