Emacs, modo automático completo, CSS, dolor.(¡ilustrado!)
autocomplete (2)
Aquí hay algunas sugerencias:
(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.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)
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).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