怎么解决一些modes和company-mode的冲突比较好?

现在一般都是直接在company-mode的弹窗开启时关闭这个mode,然后在补全完成/取消后打开。比如Spacemacs:

;; funds.el
(defvar-local company-fci-mode-on-p nil)

(defun company-turn-off-fci (&rest ignore)
  (when (boundp 'fci-mode)
    (setq company-fci-mode-on-p fci-mode)
    (when fci-mode (fci-mode -1))))

(defun company-maybe-turn-on-fci (&rest ignore)
  (when company-fci-mode-on-p (fci-mode 1)))


;; packages.el
(add-hook 'company-completion-started-hook 'company-turn-off-fci)
(add-hook 'company-completion-finished-hook 'company-maybe-turn-on-fci)
(add-hook 'company-completion-cancelled-hook 'company-maybe-turn-on-fci)

然后我想问的是,这事情还有别的处理方法没?总觉得这么着没个完啊……假设你装了一大堆和company-mode有冲突的mode……

谢谢各位。

写个宏把workaround包裹起来, 这样就眼不见心不烦了.

也是个办法……

Issue.