css emacs autocomplete

Emacs, modo automático completo, CSS, dolor.(¡ilustrado!)



autocomplete (2)

Aquí hay algunas sugerencias:

  1. (setq ac-auto-start t) inicia el autocompletado automáticamente. Si cambia eso a (setq ac-auto-start 1) (o 2 o 3), entonces solo comenzará después de que se hayan tipeado muchos caracteres. Sin embargo, esto podría no resolver su problema si después de escribir el ; , considera la palabra anterior completa como parte de la búsqueda de autocompletar actual.

  2. Quizás el problema es que no reconoce el punto y coma como un carácter delimitador (como el espacio en blanco), por lo que cree que todavía está agregando la última palabra. Tal vez agregar la cadena de punto y coma a ac-ignores haría el truco? (No estoy seguro de cuál sería la sintaxis para eso)

  3. Tal vez pueda evitar la finalización automática mediante la tecla Intro agregando: (define-key ac-complete-mode-map "/t" ''ac-complete) y (define-key ac-complete-mode-map "/r" nil) . No estoy seguro de cómo esto va a interactuar con DWIM sin embargo (habilitado por defecto).

  4. Intenta agregar punto y coma como una clave de autocompletar?

Mi conocimiento de .emacs en una escala de 0 a 10 es como un 1.5, pero tal vez esto haga trizas algunas ideas mejores.

Tengo el modo Auto Complete instalado para Emacs.

Primero: cuando estoy escribiendo declaraciones obtengo el comportamiento normal de autocompletar:

Así que presiono la tecla Tab para completar, no hay problema. Pero entonces golpeo ; :

¡Intenta instantáneamente completar algo! ¡Y no puedo presionar Enter porque eso aceptará la finalización errónea!

Así que tengo que golpear a Cj . Que dolor.

Segundo: Una vez que he terminado con una declaración, escribo } :

... pero no se sangra correctamente a menos que escriba Tab .

¿Lo que da?

Ajustes de actualización:

Estoy usando Emacs 23. Mis css-electric-keys son } y ; . La configuración de Mi Auto Complete es la siguiente:

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


Cosas viejas que conozco, pero prueba lo siguiente:

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

Del manual