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?TABpara 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-RETy vea si Emacs realmente recibe la señal enC-RETlugar 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-pyM-n, o buscarlas conC-s, o seleccionar directamente un candidato conM-1throughM-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
SPCy.).Encuentro que vincular las teclas ofensivas
nilsegú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
nilnada , 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-aborty luego inserte el carácter escrito por usted. Aquí está mi solución:Creo que puede extender esto fácilmente
RETllamando en(newline)lugar de hacerlo(insert-char)(aunque no lo he intentado porque usoRETpara seleccionar).En realidad estoy usando,
use-packageasí que esto es lo que tengo en mi init:fuente