A menudo quiero ir a una nueva línea mientras se muestra la sugerencia de modo de empresa. ¿Cómo puedo configurar el modo empresa para que solo la tecla de tabulación active una finalización?
key-bindings
completion
company-mode
Connor
fuente
fuente
Mi configuración completa para solucionar este molesto comportamiento predeterminado es:
( enlace a la configuración actual, que se ha mejorado aún más pero es bastante complicado en este punto)
(actualizado según esta pregunta )
fuente
(define-key company-active-map (kbd "C-RET") #'company-complete-selection)
pero no funcionó. ¿Sabes si esto sería posible y cómo lograrlo?TAB
para seleccionar el primer elemento de la lista sin necesidad de 'interactuar'. Pero para responder a su pregunta, apuesto a que su terminal no puede enviarC-RET
(el mío no puede). PruebeC-h k C-RET
y vea si Emacs realmente recibe la señal enC-RET
lugar de soloRET
.(define-key company-active-map (kbd "TAB") #'company-complete-common-or-cycle)
pero parece que está bien, cuando cambié a otra que no sea C-RET obtuve el comportamiento deseado. Gracias.M-p
yM-n
, o buscarlas conC-s
, o seleccionar directamente un candidato conM-1
throughM-0
(los números se muestran si establececompany-show-numbers
).Acabo de ver esto mientras buscaba una solución para el mismo problema (aunque las claves molestas para mí eran
SPC
y.
).Encuentro que vincular las teclas ofensivas
nil
según lo propuesto por @glucas y @Radon Rosborough no es una buena experiencia de usuario, ya que entonces debe abortar manualmente el menú desplegable de la compañía que es perjudicial para la escritura rápida.Es decir, si la empresa se activa y escribe una clave vinculada a
nil
nada , sucederá. Eso no es lo que esperarías cuando escribes un personaje. Es de esperar que se inserte el carácter.Por el contrario, es mucho más conveniente que emacs llame automáticamente
company-abort
y luego inserte el carácter escrito por usted. Aquí está mi solución:Creo que puede extender esto fácilmente
RET
llamando en(newline)
lugar de hacerlo(insert-char)
(aunque no lo he intentado porque usoRET
para seleccionar).En realidad estoy usando,
use-package
así que esto es lo que tengo en mi init:fuente