2

假设我的缓冲区内容如下

teh msot |

光标在|. 通常我可以通过单击msot来纠正(flyspell-auto-correct-previous-word)。我想要的是更正,即之前的错误。(或一般第 n 个咒语)mostC-;tehthe

似乎flyspell-auto-correct-previous-word正在采用数值参数,但没有产生预期的结果。

我错过了什么。?

更新:

为什么我需要这个。,当我写研究笔记时,flyspell 错误地将一些科学单词标记为错误。所以需要跳过一两个假标记。

4

1 回答 1

1

Ch f flyspell-auto-correct-previous-word 告诉我数字参数称为“位置”。这看起来不像您正在寻找的东西。位置很可能是指缓冲区中的位置。查看 flyspell 源代码显示该参数未以有意的方式使用(无法判断覆盖是什么......)

;*---------------------------------------------------------------------*/
;*    flyspell-auto-correct-previous-word ...                          */
;*---------------------------------------------------------------------*/
(defun flyspell-auto-correct-previous-word (position) 
  "*Auto correct the first mispelled word that occurs before point."
  (interactive "d")

  (add-hook 'pre-command-hook 
        (function flyspell-auto-correct-previous-hook) t t)

  (save-excursion
    (unless flyspell-auto-correct-previous-pos
      ;; only reset if a new overlay exists
      (setq flyspell-auto-correct-previous-pos nil)

      (let ((overlay-list (overlays-in (point-min) position))
        (new-overlay 'dummy-value))
[SNIP]

(interactive "d") 还表明,在交互式调用的情况下,点的当前位置被分配给位置。马蒂亚斯

于 2012-05-20T21:36:04.820 回答