基于 Company 编写了一个带中文注释的英文补全助手

这个实测不是太好,因为网上和grammerly交互比较慢,让码字体验非常差,缺乏流畅感。我有段时间用auctex写论文,一直打字卡卡的,不解很久,后来发现是它的过。(当然我没有深入的config,可能可以让flycheck-grammerly的设置改改,让它识别你输入停下2、3秒后再启动grammerly检查,可能就很好了) (不是同一个包,我说的那个包键下楼)

当然,如果是写英文文章初学的,也还是很不错的。

咦,好像不是同一个包支持grammarly,我用的这个,是自动检查的 (好处是不用装那个grammarly的app)。哪天有空了调一下,搞成手动的或识别输入延迟的,就很好了。

(use-package grammarly  ;; Grammarly API interface
  :disabled
  :config
  (use-package flycheck
    :diminish
    :hook ((text-mode   . flycheck-mode)
           (LaTeX-mode  . flycheck-mode))
    :config
    (add-hook 'org-mode-hook (lambda () (flycheck-mode -1))))
  ;; flycheck interface for Grammarly
  ;; grammarly available for: text, latex, org, markdown
  (use-package flycheck-grammarly :demand))
2 个赞

现在我的解决方案是使用 company-try-hard,并把 company-english-helper-search 加到 company-backends 的最后,在需要对英文单词进行补全的时候,调用 company-try-hard 就行。

不知道有这个包。

@xuchunyang 本站的 ELPA 镜像是不是很久没更新了?

镜像没问题,文件在这里:

http://elpa.emacs-china.org/melpa/grammarly-20200720.948.el


http://elpa.emacs-china.org/packages/ 这个项目「 Last update at 2018-10-05 16:45:16 +0000.」跟 Emacs China ELPA 相互独立,它从一开始就没搞成功,依赖 http://elpa.emacs-china.org/packages/all.json 这个 1.5M 巨大的文件,第一次打开网页很卡,而且我也没有更新 all.json,你可能有印象:

我想想能不能重写这个项目,把上面两个问题解决了。

我觉得速度还行,至少比 melpa.org 快一些。想要再提速只能上后端了。

好像用了 (require 'cl)

27会出现警告 Package cl is deprecated

大佬要修改下么?

pr are welcome :grinning:

怎么绑定快捷键调用补全助手啊 每次都m-x输入调用太麻烦了 但小白又不懂怎么绑定快捷键

with-temp-message

歪楼了 其次 (global-set-key (kbd "key (需要遵守一些规则 例如Ctrl+Space就是C-SPC)") #'execute-extended-command)

哇 赞了 就是看up的视频尝试入坑emacs的 感觉真的是天坑啊够我一直折腾了 :sweat_smile:

这个包有没有办法支持capf之类的内置补全方案。

我最近在尝试corfu替换company全家桶,一个尽可能利用emacs自带补全能力的包,感觉相对轻量级后面维护容易些。装了corfu以后大部分功能包括eglot等都可以使用,但看了看 company-english-helper似乎重度依赖company,暂时没办法run起来。

(个人目前觉得corfu还不错

比如这里我连续输入plt.sca就能直接补全,文档展示虽然有点简陋也够用了。)

没时间折腾,我觉得英文补全不要和代码混在一起。

因为company本身多后端优先级排序就不好,混在一起全是英文单词。

我的本意也不是想让英文补全和代码混到一起乱成一团。我只是想找到一个不重度依赖company的english-helper实现,我自己先试试看给english-helper加一个后端。

谢谢你的作品~

哦,这样哇,你就看那个python脚本吧,你其实只要内容。

1 个赞

嗯嗯,代码写的挺清晰,晚上搞一下试试。

切换是有点折腾,主要是我认为company有点复杂,有时有问题也弄不太清楚原因,因此倾向于尽可能使用emacs内置方案,减轻维护压力(我的配置里已经没有company了,上面的补全之类用的corfu)。

现在唯一割舍不下的就是这个英文补全助手包了哈哈哈哈

1 个赞

corfu 代替 company 配合 eglot 有性能提升吗?

性能提升感觉不明显,有点像从ivy切换到vertico的感觉,似乎有提升,但没有完全提升。我原来是company➕company-box等一堆,现在是corfu的一套组合拳,没啥明显感知变化。

除了性能,最大的感觉其实是包的实现代码少了好多,容易读,自己的配置也精简掉了一堆代码,出问题容易找原因。

还有一点优点就是和贴近内置功能的包配合比较好,比如和vertico能一起用orderless之类的功能,无缝衔接

缺点很明显,一些有严重依赖的第三方包没办法用,english-helper属于代码写的精简还能调调,复杂的包直接得放弃了。

多谢分享,我现在也是主要用 vertico + orderless+consult。看来可以尝试一下 corfu