现在一般都是直接在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……
谢谢各位。