自定义spell check的choice窗口

如何自定义spell check的choice窗口啊?

  1. 选项的个数限制为9个?
  2. 选项从1开始,或者从a开始?
  3. 窗口的位置在modeline上面,而不是在窗口的最顶端?

这个看起来没办法定制,但已经有了候选词情况下,重写一个选择界面可能更简单(用 Minibuffer、popup、Helm 之类的)。

也没直接的选项,但可以通过 Advice 实现。切分窗口是在 ispell-display-buffer 中通过 (split-window window size 'above) 实现的,所有把这里的 'above 改成 'below 就行:

(define-advice ispell-display-buffer (:around (old-fun buffer) split-window-below)
  (define-advice split-window (:filter-args (args) below)
    (list (nth 0 args) (nth 1 args) 'below (nth 2 args)))
  (unwind-protect (funcall old-fun buffer)
    (advice-remove 'split-window #'split-window@below)))
1 个赞

应该不用自己写,MELPA 上已经有好几个了:Helm、Ivy、Popup 都有了,搜索 ispell 或 flyspell 就能找到。

那个‘below 的窗口代码是可以的。

melpa上有现成的package,很方便,谢谢!