[英]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中的require
和autoload
的概念,所以我在這里請教一個建議:
我需要在.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.