怎么用Company mode补全字典里的英文单词呢?

找到了陈斌大神的一篇博文:emacs-auto-completion-for-non-programmers

按照他的配置了,也下载了他的english-words.txt,并配置了路径。一切显得井然有序。只不过补全的字典似乎没有生效,似乎指向了其他的字典,而不是english-words.txt。

字典里明明有"Sisyphean"这个词,但是补全的列表中没有。

company-ispell我在源里面都没找到,你是在哪里找的?

company-ispell是包含在company包里的

了解了,这个需要机器装ispell吗?mac下,似乎机器默认是没装ispell的

enen ,用的aspell程序

这个和company-dict比如何

我没用成company-dict,我用了这个 https://github.com/wushuaibuaa/emacscompanywords 还有中英文的补全

2 个赞

这个方案有点蹩脚,但是起码能用起来,他把所有单词全部写在了elisp中,所以那个好几百KB的el用emacs打开要慎重

这个主意不错。但是原来的问题的原因是什么?无所谓了?我试了下自带的 company-ispell,配置起来很简单:

(setq company-ispell-dictionary "/usr/share/dict/words")

之后,M-x company-ispell 也正常。

1 个赞

好像是哦。。。:joy:

english-words.txt 中的单词必须是按字母排序的。

1 个赞

这不算啥,pyim 默认要打来 10 M 的 elisp :joy:

https://www.emacswiki.org/emacs/PredictiveMode

推荐用这个,虽然比较旧,但是基本能开箱即用,而且优点在于能根据词频调整排序,不止是在全局词典上调整,它能根据你是在写 LaTeX 论文还是在写 Markdown 日记提供不同词典,还能支持多种语言,定制性强。据称词典在 4 万单词左右不会影响写作速度。

顺带说一句,作者是因为得了 RSI 写的这个包,所以我觉得不会反人类。

试用后发现发现除了第一次打开 mode 加载卡了一下,之后都很流畅。 补全界面和新的 popup.el 不兼容,我觉得可以用 company 重写一个。 使用体验比 company-ispell 好很多,提示的基本是想要的词。可以减少按键,缓解腕管严。

4 个赞

在github上搜到了 company-predictive , 2009年的古董code居然还能用。。。

    (require 'predictive nil t)
    (load "dict-english")
    (defvar company-predictive-syntax-table
      (let ((tbl (copy-syntax-table (standard-syntax-table))))
        (modify-syntax-entry ?\- "w" tbl)
        tbl)
      "Make character `-' have syntax word.")
  
  
    (defun company-predictive-grab-word ()
      (with-syntax-table company-predictive-syntax-table
        (company-grab-word)))
  
    (defun company-predictive (command &optional arg &rest ignored)
      "A predictive-like `company-mode' completion back-end."
      (interactive (list 'interactive))
      (case command
        ('interactive (company-begin-backend 'company-predictive))
        ('prefix (company-predictive-grab-word))
        ('candidates (predictive-complete arg))
        ('ignore-case t)
        ('sorted nil)
        ('duplicates t)))
4 个赞

image

这样不对啊!

image

用的是 company-words-discn,exa 提示是正确的,exm 也能出来exmmple

2 个赞