让 minibuffer 像菜单一样在光标处弹出, emacs26已经可以实现了。

emacs 26 添加了一些特殊的东西,虽然不太起眼,但我今天研究了一下, 标题上说的功能已经可以实现了


相关讨论:如何把company的前端显示换成ivy?

3 个赞

一个小栗子

(setq my-frame
      (let ((after-make-frame-functions nil))
        (make-frame
         `((parent-frame . ,(window-frame))
           (undecorated . t)
           (cursor-type . nil)
           (minibuffer . nil)
           (width . 50)
           (height . 1))
         )))

(set-window-parameter
 (frame-root-window my-frame)
 'mode-line-format 'none)

(setq my-timer nil)

(setq my-timer
      (progn
        (when my-timer
         (cancel-timer my-timer))
      (run-with-timer
       0 0.1
       #'(lambda ()
           (let* ((pos (cdr (mouse-pixel-position)))
                  (x (car pos))
                  (y (cdr pos)))
             (set-frame-parameter
              my-frame 'top (+ y 30))
             (set-frame-parameter
              my-frame 'left (+ x 30)))
           ))))
1 个赞

没法想像是什么样子的,能不能贴个动图看看? :joy:

emacs-minibuffer-26

很好使,我试着用这个功能显示 pyim的 page, 效果非常好

Emacs 更像 acme 了。

out

emacs 26 添加了许多窗口管理器类似的功能, 很有搞头

试了一下,在新的frame和老的frame鼠标都没法用了。

(let ((frame (make-frame '((top . 10) (left . 10) (width . 60) (height . 15) (undecorated . t) (no-other-frame . t) (skip-taskbar . t)))) (helm-split-window-default-side 'same)) (select-frame-set-input-focus frame) (helm-buffers-list))

这个需要慢慢的研究,毕竟是新功能,需要不停的采坑

可惜终端不支持 child frames