3 votos

¿Cómo eliminar completamente y sin piedad los enlaces de teclado de Emacs?

No es la típica pregunta sobre la vinculación de las teclas...

¿Existe alguna forma de eliminar o desajustar completamente y sin piedad los keybindings de Emacs en el Mac?

Después de mucha investigación vengo con un problema y lo que he aprendido:

Problema -- Quiero que mis atajos básicos (como copiar y pegar) sean como los de Windows, con la tecla Control en lugar de la tecla Comando.

Podría cambiar las teclas modificadoras en la configuración del teclado. Pero esto es problemático para mí, porque la mayor parte del tiempo estoy remotando en máquinas Windows. Cuando intercambio las teclas modificadoras en el sistema iMac, se invierten de nuevo en cuanto me conecto remotamente a Windows.

Así que lo que he hecho en su lugar es añadir atajos personalizados en la configuración del teclado. Esto funciona en su mayor parte, y funciona perfectamente remotamente en una máquina Windows. Pero hay una parte de esta configuración que todavía no funciona bien:

En ciertos editores de texto o campos de texto en formularios basados en la web, o en aplicaciones de mensajería instantánea en las que se escribe en un campo (básicamente en cualquier momento en el que se edita texto sin procesar) el Control-V no funciona para Pegar, incluso cuando existe el acceso directo personalizado para ello.

En lugar de pegar, mueve el cursor al final de la vista actual. He aprendido que esta es una de las muchas combinaciones de teclas "Emacs" que se incorporan intencionadamente a los Mac. Emacs es un editor de texto en bruto, y estas combinaciones de teclas entran en juego cuando estás dentro de un entorno de edición de texto en bruto. Básicamente, un atajo diferente tiene prioridad sobre mi atajo personalizado. Este comportamiento se puede reproducir añadiendo el atajo personalizado e intentando pegar con él en el propio TextEdit de Apple.

Después de investigar aún más, he descubierto que estos Emacs Keybindings pueden ser desactivados añadiendo/editando un archivo DefaultKeyBinding.dict usando una sintaxis como { "^v" = ( ); } -- lo que he hecho y....bien, funciona... para algunas cosas. Parece haber solucionado el problema para las aplicaciones nativas del SO como TextEdit, pero sigue sin pegar (y sigue moviendo el cursor hasta el final) en la mayoría de los campos de formularios web y programas de edición basados en la web. Y es extremadamente frustrante.

2voto

Oskar Puntos 1242

Esto supondrá una gran cantidad de trabajo debido a cómo Apple diseñó las rutinas de manejo de texto en todas sus herramientas para desarrolladores.

Nada es realmente imposible, pero la elevación aquí será enorme para de alguna manera "parchear en caliente todo el código" en todas partes. Creo que has hecho un buen trabajo aislando las correcciones fáciles que están disponibles y ahora tienes las tuercas más difíciles de romper, aplicación por aplicación.

0voto

davidavr Puntos 121

No creo que esto sea posible de forma nativa. Sin embargo, si estás abierto a utilizar una herramienta de terceros, creo que Keyboard Maestro es lo suficientemente flexible como para reasignar cualquier tecla a cualquier acción. Estoy seguro de que otras herramientas de mapeo de teclas pueden hacer lo mismo.

En cuanto a su comentario sobre la personalización DefaultKeyBinding.dict , aquí es un buen resumen del sistema de texto del sistema operativo y de los enlaces por defecto, junto con detalles sobre cómo personalizar DefaultKeyBinding.dict . Ese archivo es esencialmente una asignación de atajos de teclado a NSResponder métodos, descritos aquí pero puedes ver que ninguno de los métodos incluye nada parecido a la opción "pegar desde el portapapeles".

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X