【发布时间】:2016-09-30 23:15:44
【问题描述】:
我几天前才开始使用 emacs,但在设置公司模式时遇到了麻烦。我使用 package-install 安装了公司模式,并在我的 .emacs 文件中添加了以下内容:-
(require 'company)
(add-hook 'after-init-hook 'global-company-mode)
然而,当我转到 haskell 模式时,当我在关键字上等待几秒钟时,根本不会弹出公司模式完成(与球拍模式一样)。我可以安装一些可能会弄乱或与公司模式冲突的东西吗? 此外,当我尝试手动调用 company-complete 时,它只是说“找不到完成”。
编辑:尝试了自动完成作为替代方案,当我按下 Tab 时,代码完成不起作用,但是当我在一个单词上调用自动完成时,它可以工作。
Edit2:自动完成工作。 https://i.imgur.com/Vn4f2GX.png 看起来 flyspell-mode 与自动完成冲突。但是,让公司模式发挥作用并不走运。 非常感谢任何帮助。
【问题讨论】:
-
因为你是通过
package.el安装的,所以不需要(require 'company)。另外,我认为没有必要使用after-init-hook而不是普通的(global-company-mode 1)。当然,这对您的问题没有任何影响。如果你去*scratch*并输入(doli你会得到公司插入的一些完成(你应该)?如果是这样,问题可能只是不支持 Haskell/Racket 补全。 -
哦,这次我确实完成了。看起来是这样的imgur.com/Hr4yNTV 这是它应该看起来的样子吗?
-
另外,我可以自动完成以使用 haskell 和球拍模式,但是在使用自动完成模式时我不能打开 flyspell 次要模式。有什么解决方法吗?我想使用 flyspell-prog-mode 来找出我的 cmets 中的任何拼写错误。好吧,我可以没有它,但我想使用它。
-
试试
ac-flyspell-workaround。 -
我猜 Haskell/Racket 和 Company 的问题是 Company 没有找到任何完成源。理想情况下,完成的来源应该由主要模式提供,因此它可用于标准的
completion-at-pointM-TAB 完成以及公司和其他一些可能的完成。如果没有,您可能会在某个地方找到一些提供完成源的 company-haskell 和/或 company-racket 包。我建议您使用 haskell 模式和球拍模式提交错误报告,要求他们添加适当的completion-at-point-function。