簡體   English   中英

在迷你緩沖區中禁用公司模式

[英]Disable company-mode in minibuffer

我已經將公司設置為全球加載如下:

(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加載? 好吧,每當我輸入Mx Cx時,迷你緩沖器會顯示“Pymacs loading ropemacs ......”並暫停一會兒。 只有啟用了global-company-mode才能觀察到這種行為,因此我將其歸咎於company

但是,為什么責備company如果它說pymacs ,對吧? 所以我繼續關閉加載pymacs ,在我的.emacs文件中看起來像這樣(直接從它的安裝說明中獲取):

(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)

在評論完最后一行並重新啟動Emacs后,即使全局啟用了company-mode ,“Pymacs loading ropemacs ...”消息也消失了。 但是,我仍然需要在(global-company-mode t)工作之前手動eval (company-mode)

在這個小小的調查之后,我想稍微改寫原來的問題。 我不熟悉Emacs中的requireautoload的概念,所以我在這里請教一個建議:

我需要在.emacs文件中放置什么才能讓company在每個文件緩沖區(而不是迷你緩沖區)中自動打開並啟用Pymacs?

謝謝。

你有最新版本嗎? 我很好奇,所以我通過安裝ELPA軟件包(列為0.5版本)並啟用了global-company-mode嘗試它,並且它不會在我的迷你緩沖區中激活。 ELPA包也負責自動加載。

如果仍有問題,您可以使用minibuffer-setup-hook (每當迷你緩沖區獲得焦點時調用),在該緩沖區中關閉公司模式。

FWIW,你的代碼對我來說有點奇怪。 let變量僅由以下行使用,因此實際上並不需要,除非有一些我不知道的自動行為,如果你可以在沒有類似聲明的情況下成功調用global-company-mode ,那自動加載必須是多余的 - 可能是圖書館自己的自動加載評論已被處理,或者圖書館已經加載?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM