在emacs中进行拼写检查有哪些选项


19

因为我目前正在Emacs中执行许多非编程任务,所以拼写检查再次成为我的主要关注之一。

我注意到,还没有与Emacs中的拼写检查选项相关的问题,因此我们开始:

我可以在Emacs中进行拼写检查的选项有哪些?

特别,

  • 用于一般用途的拼写检查,即对错别字的明智建议,单词拼写纠正
  • 用于选择性拼写检查,例如通用拼写检查,但在注释中
  • 对于我忘记或不知道但您可以想到的任何内容(与拼写检查有关,du ...)

编辑:在一个单独的问题中分叉了“其他”内容,有哪些选项可以在emacs中编写更好的文本


1
我推荐此页面:Emacs中的拼写
Luke

1
就目前而言,这个问题太笼统了。我建议将其限制在第二个要点(选择拼写检查),并可能单独询问语法。
吉尔(Gilles)'“ SO-不要邪恶” 2014年

只有您的前两项与拼写检查有关。语法和语言不是拼写检查,您的后三项将完全构成一个完全不同的问题。
马拉巴巴2014年

1
尽管我真的不同意原始问题过于广泛或由两个截然不同的问题组成,但我分了第二部分。现在,这个问题与拼写检查有关,另一个与语法检查和编写更好的文本有关。
elemakil 2014年

Answers:


10
  • 对于通用拼写检查,有很多流行的替代方法
    1. ispell和朋友:内置于emacs中,通常使用进行调用ispell-buffer。仅根据需要检查拼写。
    2. flyspell-mode:还内置并提供即时的拼写检查并突出显示错误。
    3. speck-mode:可从MELPA获得,键入后暂停后,它将检查单词的拼写。它还具有与flyspell模式不同的一些功能,例如能够在同一缓冲区中使用多个词典。(免责声明:我很久以前只使用了此模式)

请注意,以上所有内容均需要专用的拼写检查程序,例如aspellhunspell和适当的词典。这些模式仅向命令行程序提供了便捷的emacs界面。

  • 对于选择性拼写检查,您可以通过连接选择必须检查哪些单词的函数来flyspell-mode使用变量flyspell-generic-check-word-predicate进行自定义。不过,您列出的示例很简单-仅使用即可flyspell-prog-mode检查代码缓冲区中的注释。

1
首先,让我感谢您的回答。根据吉尔和马拉巴巴的评论,我将问题分为两部分。因此,建议您将答案的第二部分(关于weasel-word)发布为新问题的答案。您可以在我的原始问题中找到链接。
elemakil 2014年

请添加wcheck到您的列表。很好,尽管flyspell最近变得如此好,以至于我不再使用wcheck了。
拉斯莫斯2014年

对于OSX,高度定制的Emacs版本称为Aquamacs,它内置了对本机OSX拼写检查器的支持(包括由用户添加的附带的OSX用户单词词典)。这是其他Emacs版本无法提供的特殊项目。
法律名单

6

@Vamsi的答案已经涵盖了通用和选择性拼写检查。但是个性化自动校正呢?@Malabarba 在他的博客上有一篇关于该主题的好文章。基本思想是将成对的拼写错误的单词和适当的更正存储为Abbrevs。这是(稍作修改的)代码,可让您轻松进行此操作:

(defun ispell-word-then-abbrev (p)
  "Call `ispell-word'. Then create an abbrev for the correction made.
With prefix P, create local abbrev. Otherwise it will be global."
  (interactive "P")
  (let ((before (downcase (or (thing-at-point 'word) "")))
        after)
    (call-interactively 'ispell-word)
    (setq after (downcase (or (thing-at-point 'word) "")))
    (unless (string= after before)
      (define-abbrev
        (if p local-abbrev-table global-abbrev-table) before after))
      (message "\"%s\" now expands to \"%s\" %sally."
               before after (if p "loc" "glob"))))

(define-key ctl-x-map (kbd "C-i") 'ispell-word-then-abbrev)
(setq save-abbrevs t)
(setq-default abbrev-mode t)

有了这个,您可以简单地

  1. C-x C-i拼错单词后打
  2. 选择一个更正,然后
  3. 再也不用担心了

因为从现在开始,Emacs将自动用更正替换该单词的拼写错误的版本。很难说这是多么有用!


如果你想增压Emacs的新发现的自动校正功能,可以添加定义的abbrevs 这里给你abbrev_defs的文件。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.