我已将公司设置为全球负载:
(let ((company-path "path/to/company"))
(add-to-list 'load-path company-path)
(autoload 'company-mode "company" nil t)
(global-company-mode t))
问题是每次迷你缓冲区获得焦点时它会重新加载。有一种简单的方法可以禁用此行为吗?我想在每个文件缓冲区中启用它,但不是迷你缓冲区。
感谢。
更新
一些澄清。
首先,每当我切换到迷你缓冲区时,是什么让我认为company-mode
会加载?好吧,每当我输入C-x
的{{1}}时,迷你缓冲区都会显示“Pymacs loading ropemacs ......”并暂停一会儿。只有启用M-x
才能观察到此行为,因此我将其归咎于global-company-mode
。
但是,为什么要责怪company
company
,对吧?所以我继续关闭{.1}}的加载,在我的.emacs文件中看起来像这样(直接从其安装说明中获取):
pymacs
在评论完最后一行并重新启动Emacs之后,即使全局启用pymacs
,“Pymacs loading ropemacs ...”消息也消失了。但是,我仍然需要在(defun load-pymacs ()
"Self-explanatory."
(add-to-list 'load-path (make-plugin-path "Pymacs"))
(autoload 'pymacs-apply "pymacs")
(autoload 'pymacs-call "pymacs")
(autoload 'pymacs-eval "pymacs" nil t)
(autoload 'pymacs-exec "pymacs" nil t)
(autoload 'pymacs-load "pymacs" nil t))
; make-plugin-path is a function defined somewhere else in my .emacs file.
(load-pymacs)
工作之前手动评估company-mode
。
经过这个小小的调查,我想稍微改写原来的问题。我不熟悉Emacs中(company-mode)
和(global-company-mode t)
的概念,所以我在这里征求意见:
我需要在.emacs文件中放置什么才能使require
在每个文件缓冲区中自动打开(而不是在迷你缓冲区中),并启用Pymacs?
谢谢。
答案 0 :(得分:4)
你有最新版本吗?我很好奇,所以我通过安装ELPA软件包(列为版本0.5)并启用global-company-mode
来尝试它,并且它不会在我的迷你缓冲区中激活。 ELPA包也负责自动加载。
如果仍然存在问题,您可以使用minibuffer-setup-hook
(在迷你缓冲区获得焦点时调用),以在该缓冲区中关闭公司模式。
FWIW,你的代码对我来说有点奇怪。 let
变量仅由以下行使用,因此实际上并不需要,除非有一些我不知道的自动行为,否则如果您可以成功调用global-company-mode
,则自动加载必须是多余的没有类似的声明 - 可能是图书馆自己的自动加载评论已被处理,或者图书馆已经加载?