最近上线了一个帮助学术写作的包,我有一个疑问

就是这个

我想要 backspace 返回上一级菜单,不知道 Ivy 中可以实现不?

我提了一个 issue 要求添加这个功能,作者说不知道怎么实现,所以在这里请教一下大家

这个你应该去问一下Ivy的作者。看了下代码,觉得有可能,既然 ivy-completing-read 作为 completing-read-function 的函数。可以在 ivy-minibuffer-map 上绑定backspace 。 但是个人觉得和Ivy关系不大。这个包的实现本身没有牵扯到Ivy。除非 ivy-completing-read 能提供这种支持。 函数 academic-phrases-by-section 先是读取第一级 得到 res 然后传递 sec 给函数 academic-phrases--insert-by-section。这个函数是第二次读取选择。所以你能看到没啥Ivy能作用的地方。 有个dirty的办法。就是你用advice或者写一个函数,把 Backspace 绑定到 minibuffer-local-completion-map。函数就是 academic-phrases-by-section。因为只有一级。相当于重新回退到刚开始状态。如果是多级,那这个方法就无效了。 最终结论:

(define-key minibuffer-local-completion-map (kbd "C-DEL") 'academic-phrases-by-section)

避免和 [DEL] 的原有操作冲突。

代码未测试。只是提供一个思路。