我几天前开始使用emacs,但是在设置company-mode时遇到了问题。我使用package-install安装了company-mode,并在我的.emacs文件中添加了以下内容:
(require 'company)
(add-hook 'after-init-hook 'global-company-mode)
然而,当我切换到 haskell-mode 或 racket-mode 时,company-mode 的自动补全没有弹出来,即使我在一个关键字上等待几秒钟。我可能安装了一些与 company-mode 冲突或干扰的东西吗? 此外,当我尝试手动调用 company-complete 时,它只会显示“未找到完成项”。
编辑:尝试使用 auto-complete 作为替代方案,但是当我按下 tab 时,代码自动完成无法工作,但是当我在一个单词上调用 auto-complete 时,它可以正常工作。
编辑2:已经让 auto-complete 正常工作。 https://i.imgur.com/Vn4f2GX.png 看起来 flyspell-mode 和 auto-complete 产生了冲突。但是,我还是无法让 company mode 正常工作。 非常感谢任何帮助。
package.el
安装的,所以不需要(require 'company)
。此外,我认为没有必要使用after-init-hook
而不是简单的(global-company-mode 1)
。当然,这对您的问题没有任何影响。如果您转到*scratch*
并键入(doli
,您是否会看到 company 插入了一些补全(应该会)?如果是这样,那么问题可能只是因为没有支持 Haskell/Racket 补全。 - Stefanac-flyspell-workaround
。 - jpkottacompletion-at-point
<key>M-TAB</key> 完成以及 Company 和可能还有其他一些工具的可用性。如果没有,您可能会在某个地方找到一些提供完成源的 company-haskell 和/或 company-racket 包。我建议您向 haskell 模式和 racket 模式提交错误报告,要求它们添加适当的completion-at-point-function
。 - Stefan