Я создал компанию для глобальной загрузки, например:
(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
из M-x
, минибуфер показывает «Pymacs загружает веревку ...» и зависает на долю секунды. Такое поведение можно наблюдать только при включенном 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 сообщение «Pymacs loading ropemacs ...» пропало даже при включенном company-mode
глобально. Однако мне все равно пришлось вручную набрать (company-mode)
, прежде чем (global-company-mode t)
сработает.
После этого небольшого расследования я бы хотел немного перефразировать исходный вопрос. Я не знаком с понятиями require
и autoload
в Emacs, поэтому прошу совета здесь:
Что именно мне нужно поместить в мой файл .emacs, чтобы company
автоматически включался в каждом файловом буфере (а не в минибуфере) и включал Pymacs вместе с ним?
Спасибо.