2012-09-30 19 views
7

Estoy muy feliz con la función de autocompletar, pero una cosa que me molesta:Emacs función de autocompletar: no disparar en RET en línea sugerencia

estoy configuración para mostrar la sugerencia en línea de inmediato, pero el menú con 0,9 s retraso. Escribo las primeras letras, por ej. "del", que se completa automáticamente automáticamente en línea para "eliminar". Si quería escribir "eliminar", presiono TAB y esto está bien. Pero, ¿qué pasa si realmente quiero escribir "del" y una línea nueva? Aquí, al presionar RET, se completa automáticamente para "eliminar".

¿Cómo puedo forzar que RET sea una nueva línea si solo se muestra una sugerencia en línea? Una vez que se muestra el menú de autocompletar, quiero que vuelva a ser la clave de activación como siempre.

¡Gracias!

+0

Prueba 'del Ctrl-d'. No estoy en una computadora con la que pueda verificar esto. – Tyler

Respuesta

8

Al añadir las siguientes líneas después de otros ajustes para el modo auto-complete, puede habilitar la finalización de RET sólo cuando se muestra el menú de ejecución:

(define-key ac-completing-map "\C-m" nil) 
(setq ac-use-menu-map t) 
(define-key ac-menu-map "\C-m" 'ac-complete) 

ac-completing-map es un mapa de teclas donde RET es por defecto enlazado a ac-complete, y ac-menu-map es un mapa de teclas para completar en el menú de finalización. El mapa de teclado ac-menu-map se habilita cuando la variable ac-use-menu-map es t.

FYI, la finalización se puede detener presionando C-g en cualquier momento. Por lo tanto, también podrá presionar C-g y RET para ingresar una nueva línea con los enlaces de RET intactos. Además, puede usar C-j en lugar de RET cuando desea ingresar una nueva línea. C-j no se une a ac-complete de forma predeterminada.

+0

¡Gracias! ¡Esto funciona! Sabía acerca de C-g (también tengo ESC vinculado a esta funcionalidad), pero eso rompe el flujo sin problemas. – user673592

Cuestiones relacionadas