2011-03-14 4 views
1

J'ai mis en place la société à charger globalement comme ceci:société mode Désactiver dans minibuffer

(let ((company-path "path/to/company")) 
    (add-to-list 'load-path company-path) 
    (autoload 'company-mode "company" nil t) 
    (global-company-mode t)) 

Le problème est qu'il charge à nouveau chaque fois que le minibuffer se concentrer. Y at-il un moyen facile de désactiver ce comportement? Je voudrais l'activer dans chaque tampon de fichier, mais pas dans le mini-tampon.

Merci.

Mise à jour:

Quelques éclaircissements. Tout d'abord, qu'est-ce qui me fait penser company-mode charge chaque fois que je passe au mini-tampon? Eh bien, chaque fois que je tape C-x de M-x, le mini-tampon montre "Pymacs chargement ropemacs ..." et se bloque pendant une fraction de seconde. Ce comportement peut être observé uniquement avec le global-company-mode activé, donc je l'ai blâmé sur le company.

Cependant, pourquoi blâmer company s'il dit pymacs, non? Alors je suis allé et éteint le chargement de pymacs qui ressemblait à ceci dans mon .emacs (pris directement à partir de ses instructions d'installation):

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

Après avoir commenté la dernière ligne et redémarrer Emacs, le « pymacs chargement ropemacs ... "le message était parti même avec company-mode activé globalement. Cependant, je devais encore évaluer manuellement (company-mode) avant que (global-company-mode t) ne fonctionne. Après cette petite enquête, je voudrais reformuler un peu la question initiale. Je ne suis pas familier avec les concepts de require et autoload dans Emacs, donc je demande un conseil ici:

Que faire exactement je dois placer dans mon fichier .emacs pour faire company activer automatiquement dans chaque fichier -buffer (et pas dans le mini-tampon) et avoir Pymacs activé avec elle?

Merci.

Répondre

4

Avez-vous la dernière version? J'étais curieux, donc je l'ai essayé en installant le paquet ELPA (répertorié comme version 0.5), et activé global-company-mode, et il ne s'active pas dans le mini-tampon pour moi. Le package ELPA prend également en charge les autoloads.

S'il y a toujours un problème, vous pouvez utiliser minibuffer-setup-hook (qui est appelé chaque fois que le mini-tampon obtient le focus), pour désactiver le mode entreprise dans ce tampon. FWIW, votre code me semble un peu bizarre. La variable let n'est utilisée que par la ligne suivante, donc pas vraiment nécessaire, et à moins d'un comportement automagique dont je ne suis pas conscient, le chargement automatique doit être redondant si vous pouvez appeler global-company-mode sans une déclaration similaire - sans doute les commentaires de chargement automatique de la bibliothèque ont-ils été traités ou la bibliothèque a-t-elle déjà été chargée?

+0

Merci pour le lien vers ELPA. J'ai fait un peu plus d'enquête et mis à jour la question avec une explication plus détaillée. J'apprécierais vraiment que vous y jetiez un coup d'oeil. Merci. –

Questions connexes