假设我有缓冲内容如下
teh msot |
光标位于|
。一般情况下,我可以通过单msot
次按(flyspell-auto-correct-previous-word)将most
更正为C-;
。我想要的是将teh
改为the
,即先前的错误。 (或一般的第n个咒语)
似乎flyspell-auto-correct-previous-word
正在进行数值论证但不会产生预期的结果。
我错过了什么。?
更新:
为什么我需要这个。当我写研究笔记时,flyspell错误地标记了一些科学词汇。所以需要跳过一两个假标记。
答案 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