最近升级了doom, corfu不好用了, 索性就删了, 不知道是不是删了corfu的原因, 原来通过设置
(setq company-global-modes '(not erc-mode circe-mode message-mode help-mode gud-mode vterm-mode c-mode c++-mode python-mode
emacs-lisp-mode verilog-mode org-mode fundamental-mode special-mode ))
可以禁用company的, 现在也不好使了, 于是打算把company也删了, 但是竟然删不掉, doom 里面太多依赖company的包了, 无奈只好设置
(setq company-minimum-prefix-length 20
company-idle-delay 10)
这个来避免触发company, 然而这个貌似会导致lsp-bridge补全的时候会卡,最终还是选择通过run-at-time 来禁止company
(dolist (hook (list
'c-mode-common-hook
'c-mode-hook
'c++-mode-hook
'verilog-mode-hook
'emacs-lisp-mode-hook
'lisp-mode-hook
'python-mode-hook
))
(add-hook hook '(lambda ()
(run-at-time 5 nil (lambda () (message "disable company") (company-mode -1))))))
不知道各位大佬有没有更好的办法?
(package! company :disable t)
这个可以不?从doom文档抄的
这个写一个 advice 把 compnay-mode 的定义给覆盖了, 不管Doom怎么设置, 让 company-mode 直接啥都不干, 这样最简单。
你直接把 init.el 里的 company 这个模块给注释掉即可。
然后如果你实在是在某些 mode 需要 company,自己装一个 company 就可以了。doom 的配置都会检查检查是否 (modulep! company)
的,所以 doom 的 company 的配置不会在你自己装的 company 里面启用。
直接在 init.el 里面注释掉 company 呢?
没用, 貌似是lsp有company后端, 会去require company
哈哈哈, 还是这个好
(advice-add #'company-mode :override '(lambda (x) (message "disabled company-mode")))
感谢大佬提醒
1 个赞
你这样就不用管其他插件怎么设置的, 反正 company-mode 不生效就好了, 简单直接。
你都用lsp-bridge了那当然要把doom init.el 里有关 lsp 的部分给注释掉。。。。。