31 votes

Emacs, Auto Complete Mode, CSS, douleur. (illustré !)

J'ai Mode Auto Complete installé pour Emacs.

D'abord : Lorsque je tape des déclarations, j'obtiens le comportement normal de l'autocomplétion :

Hosted by imgur.com

Alors j'ai frappé Tab à compléter - aucun problème. Mais ensuite, j'ai frappé ; :

Hosted by imgur.com

Il essaie instantanément de compléter quelque chose ! Et je ne peux pas frapper Enter car cela acceptera la complétion erronée !

Hosted by imgur.com

Donc je dois frapper C-j . Quelle douleur.

Deuxièmement : Une fois que j'ai fini avec une déclaration, je tape } :

Hosted by imgur.com

...mais il n'est pas indenté correctement à moins que je tape Tab .

Qu'est-ce qui se passe ?

Mise à jour, réglages :

J'utilise Emacs 23. Mon css-electric-keys sont } y ; . Ma configuration Auto Complete est la suivante :

(ac-config-default)
(setq ac-auto-start t)
(setq ac-delay 0.1)
(setq ac-auto-show-menu nil)
(setq ac-show-menu-immediately-on-auto-complete t)
(setq ac-trigger-key nil)

11voto

Alain Points 10079

Voici quelques suggestions :

  1. (setq ac-auto-start t) lance l'autocomplétion automatiquement. Si vous changez cela en (setq ac-auto-start 1) (ou 2 ou 3), il ne commencera qu'après avoir tapé ce nombre de caractères. Cela ne résoudra peut-être pas votre problème si, après avoir tapé la touche ; il considère l'ensemble du mot précédent comme faisant partie de la recherche auto-complète en cours.

  2. Peut-être que le problème est qu'il ne reconnaît pas le point-virgule comme un caractère de délimitation (comme les espaces), donc il pense que vous ajoutez encore au dernier mot. Peut-être que l'ajout de la chaîne point-virgule à ac-ignores ferait l'affaire ? (Je ne suis pas sûr de la syntaxe à utiliser).

  3. Vous pouvez peut-être empêcher l'autocomplétion via la touche Entrée en ajoutant : (define-key ac-complete-mode-map "\t" 'ac-complete) y (define-key ac-complete-mode-map "\r" nil) . Je ne suis pas sûr de l'interaction avec DWIM (activé par défaut).

  4. Essayez d'ajouter le point-virgule comme clé d'autocomplétion ?

Ma connaissance du .emacs sur une échelle de 0 à 10 est de 1,5, mais peut-être que cela me donnera de meilleures idées.

4voto

Paw Points 31

C'est un vieux truc, je sais, mais essayez ce qui suit :

(add-hook 'css-mode-hook       
  (lambda ()
     (make-local-variable 'ac-ignores)
     (add-to-list 'ac-ignores ";")))

Desde le manuel

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X