求固定 M-x Prompt 那一行在最底下的方法。

我只需要更改prompt line位置,不需要reverse candidates,所以还是不用vertico-reverse-mode了。魔改了一下,加了一个advice即可。

  (defun ad/vertico--display-prompt-bottom (lines)
    "Set prompt line to bottom in `vertico-mode'."
    (move-overlay vertico--candidates-ov (point-min) (point-min))
    (unless (eq vertico-resize t)
      (setq lines (nconc (make-list (max 0 (- vertico-count (length lines))) "\n") lines)))
    (let ((string (apply #'concat lines)))
      (add-face-text-property 0 (length string) 'default 'append string)
      (overlay-put vertico--candidates-ov 'before-string string))
    (vertico--resize-window (length lines)))
  (advice-add 'vertico--display-candidates :override #'ad/vertico--display-prompt-bottom)