请问如何将helm窗口固定到特定位置?

我在这里看到可以使得helm窗口在特定位置:

不过链接里的代码好像都是spacemacs自带的代码,仅依靠这些代码是无法实现这种效果的。 那么为了实现这种效果应该要怎么设置呢?

这种设置是持久的吗?或是说如果helm选中之后该窗口会消失位置会由其他窗口补充,等下次再开的时候重新在这个窗口出现?

另外还有几个关于helm的问题:

  1. helm为什么要用minibuffer作为输入呢?这样的话岂不是开helm之后再做一些操作(比如 M-:)会使得helm显示的很奇怪?使用minibuffer的优势在于哪里?

  2. helm-display-header-line开启之后仅仅是复制的minibuffer的信息,为什么不把这个做成单独的输入框呢?如果想做的话,关键技术是什么?

  3. helm开启之后点击其他窗口在点击回helm窗口,只有在helm-allow-mouse开启的时候点击待选项的字符才可能重回minibuffer焦点(这也是spacemacs加入SPC w b快捷键的原因吧),用起来很不方便。仅仅是因为作者不常用鼠标所以懒得加,还是因为这个技术实现起来难度比较大?

  4. 如果想把helm窗口常驻通过鼠标进行切换(也就是开启helm-follow-mode之后进行点击的效果),但是按回车之后依然保留helm窗口,甚至同时开几个helm窗口,是不是实现起来对helm自身的修改还是比较多的?我看helm-read-pattern-maybe函数本身还是比较大的,得到read-from-minibuffer结果之后直接返回。要改的话是不是整个函数都要重写的样子。

  5. 如果你从上面几个问题大概能猜出我要做什么的话,那么对于持久性显示列表+fuzzy matching这个需求,除了helm,还有什么合适的选择吗?

几个问题大概有些奇葩。后续如果能做出之后会把我做的东西放出来,大家就会知道我为什么要做这些工作了。

Emacs新手求轻喷 :sweat_smile:

Emacs 默认从 minibuffer 输入。要从别的地方接受输入增加了复杂性,当然也不是不可以。

至于窗口和鼠标等问题,确实是实现起来太复杂了。

你可以看看这几个做法