Accélérer le mode entreprise?

11

Je suis passé d'un texte sublime à emacs il y a quelque temps, et même si je pense qu'emacs est beaucoup plus agréable, sa saisie semi-automatique manque vraiment de réactivité. Je suis allé et j'ai personnalisé l'entreprise pour qu'elle essaie de se terminer après que deux caractères aient été tapés et donc le retard n'était que de 0,1 s, mais cela n'apparaît pas la moitié du temps et quand c'est le cas, ce n'est vraiment pas utile. Quelqu'un d'autre a-t-il réussi à faire en sorte que l'entreprise soit aussi réactive que sublime / studio visuel / éclipse? Tout autre IDE vraiment.

m0meni
la source
2
Avec quelle langue travaillez-vous?
abo-abo
Avez-vous essayé la saisie semi-automatique ? Je le personnalise sans problème, le manuel d'utilisation est vraiment complet.
Carlo Rodríguez
1
Je vous propose de faire un réel M-x report-emacs-bugavec des recettes reproductibles.
Stefan

Réponses:

13

J'ai aussi eu une mauvaise expérience en entreprise au début, mais dans ma configuration je viens de mettre ces lignes.

(setq company-dabbrev-downcase 0)
(setq company-idle-delay 0)

La première variable est utilisée pour ignorer le downcase que l'entreprise fait pour les variables que je remplis automatiquement, la seconde que je pense que vous avez déjà.

(defun tab-indent-or-complete ()
  (interactive)
  (if (minibufferp)
      (minibuffer-complete)
    (if (or (not yas-minor-mode)
            (null (do-yas-expand)))
        (if (check-expansion)
            (company-complete-common)
          (indent-for-tab-command)))))

(global-set-key [backtab] 'tab-indent-or-complete)

Ces lignes sont également utiles pour déclencher l'achèvement en appuyant sur la touche souhaitée.

Sebas
la source
Je l'apprécie, mais j'ai un peu désactivé emacs maintenant: p. J'utilise toujours les raccourcis clavier.
m0meni
4
"(setq company-idle-delay 0)" Ne faites pas cela, vous perdez beaucoup d'horloges CPU de cette façon.
Dmitry
J'obtiens "La valeur du symbole comme variable est vide: do-yas-expand" lorsque j'utilise votre tab-indent-or-completefonction.
SergiyKolesnikov