El sistema de entrada de texto de MacOS lleva mucho tiempo soportando atajos de teclado personalizados a través de ~/Library/KeyBindings/DefaultKeyBinding.dict
. Lo he utilizado con éxito durante años para hacer la edición de texto más parecida a la de Emacs, pero hay una característica que nunca he podido hacer funcionar: el yankAndSelect:
método. Nunca pasa por el anillo de muerte para mí; siempre sólo arranca el último objeto muerto. Estoy buscando ayuda para que funcione.
Así es como lo he probado. En primer lugar, puse NSTextKillRingSize
utilizando este comando en un terminal:
defaults write -g NSTextKillRingSize -int 20
(También he probado -string
en lugar de -int
en el comando anterior, pero no hace ninguna diferencia en el comportamiento). A continuación, he eliminado todo de mi DefaultKeyBinding.dict
archivo y dejó sólo esto:
{
"^y" = (yankAndSelect:);
}
Tenga en cuenta que dejo controlk ligado a su acción de sistema de texto por defecto (que es matar hasta el final de la línea). Finalmente, reinicié, sólo para estar absolutamente seguro de que nada inesperado persistía.
Basado en muchas fuentes, como Documentación de Apple Los dos documentos sobre personalización del sistema de texto Cocoa y la lista de selectores por Jacob Rus desde 2006, KeyBindings de Brett Terpstra y páginas aleatorias de otras personas en la web, parece que el siguiente comportamiento debe (como describe Brett Terpstra):
- Abra TextEdit (reinícielo si ya estaba abierto)
- Escriba una línea de texto, mueva el cursor al principio de la línea, escriba controlk
- Escribe otra línea con un texto diferente, y repite el paso 2
- Hazlo una vez más
- En una línea en blanco, escriba controly . Esto debería pegar la última línea que mataste
- Tipo controly de nuevo, y el texto pegado debería ser reemplazado por la segunda línea que mataste
- De nuevo, y deberías ver la primera línea. Las repeticiones continuas harán un ciclo a través del anillo de muerte.
Esto es no lo que sucede en mi uso . En cambio, lo que sucede es que el paso #6 sí no pegar la penúltima muerte, sino la más reciente (tercera), siempre. Es como si no hubiera ningún anillo de muerte, y yankAndSelect:
siempre se retira la muerte más reciente.
Este es un comportamiento 100% repetible en todos los sistemas (MacOS 10.13, y una VM 10.14 casi fresca) y en todas las aplicaciones que respetan DefaultKeyBinding.dict (no sólo TextEdit) que he probado.
¿Qué más hay que hacer para conseguir yankAndSelect:
para recorrer el anillo de muerte ?