which-key 窗口关闭之后如何恢复光标位置到原点?

如果光标行在window底部的时候,使用which-key以后,光标行跑到window中间去了,怎么才能让光标行不改变呢?下图:

1、现在光标在46行,位于窗口的底部

1

2、使用which-key,现在光标所在的46行跑到窗口的中间了,这一步还没关系

2

3、使用完which-key后,光标所在的46行依然还在窗口中间,没有回到使用which-key之前的状态

3

我希望用完后可以恢复到第一张图的状态,应该怎么搞啊?

啊哦,作者说不知道咋整

我试了试which-key-posframe 但是边框显示不了呢,linux emacs 27.2

我觉得这首先是个怎么提问的问题,没有足够的信息,别人没法复现你的 bug 没法排查呀。虽然我提问的技术也没那么好,但可以给你参考一下。注意,我用了 emacs -q 来启动一个无配置版的 Emacs。

或者你也可以可以参照:

1 个赞

:smile:

这个问题倒是不适合用“二分法”,这是 Emacs 本身的问题。不过“二分法”的确可以定位绝大部分看似无头绪的问题,所以任何时候用二分法和 emacs -q 都无妨,至少可以排除第三方包的嫌疑。

楼主这个提问在我看来存在如下问题:

  1. 标题「请教各位一个which-key的问题」言之无物

    建议改成「which-key 窗口关闭之后如何恢复光标位置到原点?」

  2. 缺乏软件版本、包和环境信息

  3. 既然有跟包的作者交流,应该放链接,而不是截图

1 个赞

:blush: 我以后注意 :pray:

Emacs 没有浮动窗口的概念,底部弹窗必然会推挤到其上的窗口,可在 emacs -q 下验证,把如下代码放到窗口底部运行:

(progn
  (split-window)
  (sit-for 1)
  (delete-other-windows))

为了解决这个问题,所以才有了 childframe: Child Frames (GNU Emacs Lisp Reference Manual)

虽说是 Emacs 本身的问题,但其实还是有解(除了用 childframe 之外)的,同样可以在 emacs -q 下只加载 ivy/helm 来验证。

是呢,ivy就没有这个问题,不过我太菜,看不懂代码,现在我用posframe就可以 :sweat_smile:

可以跟 which-key 作者反馈这个情况。