flyspell纠正了之前的错误

时间:2012-05-20 19:59:23

标签: emacs flyspell

假设我有缓冲内容如下

teh msot |

光标位于|。一般情况下,我可以通过单msot次按(flyspell-auto-correct-previous-word)将most更正为C-;。我想要的是将teh改为the,即先前的错误。 (或一般的第n个咒语)

似乎flyspell-auto-correct-previous-word正在进行数值论证但不会产生预期的结果。

我错过了什么。?

更新:

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

1 个答案:

答案 0 :(得分:1)

C-h 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]

(交互式“d”)表示在交互式呼叫的情况下,点的当前位置被分配给位置。 的Matthias