You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何禁止Emacs的company-mode在类成员访问运算符后自动弹出补全窗口

问题原因

你修改的company-semantic-begin-after-member-access和company-clang-begin-after-member-access是Semantic、Clang这两个C/C++专属补全后端的配置项,Python开发场景下Elpy调用的是company-elpy或者company-capf后端,因此这两项配置不会生效。
按下类成员访问运算符后仍弹出补全窗口,是因为Company内置了标点触发补全的独立逻辑,优先级高于你设置的company-idle-delay、company-minimum-prefix-length全局配置。

解决方法

在company的config配置块中新增company-on-punctuation-delay nil配置即可,若仍有问题可同时关闭Elpy自带的自动补全开关,修改后的完整配置如下:

(use-package company
  :ensure t
  :hook (prog-mode . company-mode)
  :config
  (setq company-idle-delay nil  ;; 符合预期生效,不会主动触发补全
        company-on-punctuation-delay nil ;; 禁止所有标点(.、->、::等)触发自动补全
        elpy-company-autocomplete nil ;; 可选:关闭Elpy强制自动补全逻辑
        company-semantic-begin-after-member-access nil
        company-clang-begin-after-member-access nil
        company-minimum-prefix-length 3
        company-selection-wrap-length 1
        company-selection-wrap-around t)
  (evil-collection-define-key 'insert 'company-mode-map
    (kbd "C-n") 'company-complete)) ;; 手动触发补全

修改后重启Emacs或重新加载配置即可生效,仅会在你按下C-n时弹出补全窗口。

内容的提问来源于stack exchange,提问作者Adaskos07

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 01:06:04