2010-11-04 18 views
12

ya que no puedo obtener CEDET para trabajar para la finalización automática de código (también conocido como intelli-sense en el mundo MS), después de intentarlo varias veces (¡no, simplemente no funciona!), He Decidí usar auto-complete, que funciona "bastante bien" para mí.Emacs autocompletar

Desafortunadamente, auto-complete tiene un comportamiento molesto a la hora de salir del imenu con sus sugerencias.

  1. auto-complete comienza imenu, no importa cuántas sugerencias tenga. Entonces, si solo hay una sugerencia, aparece el menú. 1.
  2. Para salir de la imenu, tengo que usar las teclas LEFT o RIGHT para hacer desaparecer el menú. ESC-ESC-ESC no tiene ningún efecto.

¿Hay alguna manera de modificar estos dos comportamientos?

He aquí un extracto de mi archivo .emacs muestra la auto-complete cosas relevantes: cuanto

 
(require 'auto-complete-config) 
(add-to-list 'ac-dictionary-directories "~/.emacs.d/ac-dict") 
(ac-config-default) 
(setq ac-delay 0.5) ;; eclipse uses 500ms 

cordiales, Mefix

Respuesta

5

'Stop autocompletar' puede ajustarse añadiendo lo siguiente a su .emacs:

(define-key ac-completing-map "\ESC/" 'ac-stop) 

... o alternativamente puede usar Cg como el comando predeterminado StopSomething de Emacs :)

En cuanto a mostrar la finalización en un menú cuando solo hay un candidato, ¿no estoy seguro de qué otro comportamiento desea?

+0

Supongo que cuando hay un solo candidato, el comportamiento deseado sería simplemente insertar ese candidato. Algunos motores de autocompletar hacen esto incluso con una selección de candidatos; recorrerán todos los candidatos disponibles con la activación de tecla de acceso rápido sucesiva. – Cheeso

+0

Gracias, David Miller. Lamentablemente, la asignación de teclas no funciona en mi caso y no sé por qué. Por ejemplo, estoy editando mi archivo .emacs, donde ac funciona muy bien. Así que tipeo "(def" e imenu aparece con (1+) sugerencias (incluyendo "(defun)". Cuando presiono "ESC", no ocurre nada. He evaluado la "definición-clave" anteriormente, por supuesto. ¿Qué estoy haciendo mal? – mefiX

+3

De acuerdo, después de intentarlo, me di cuenta de que presionar Y mantener el escape es lo que "ESC" significa, que no era lo que yo quería. Después de algunas investigaciones, descubrí que '(define- la clave ac-completing-map "\ e" 'ac-stop) 'hace el truco! – mefiX

Cuestiones relacionadas