我只需要更改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)