2012-04-13 4 views
9

estoy en OSX LionOSX + + Terminal.app Emacs + tecla de comando hacen que funcionan como meta

que correr emacs interior de Terminal.app

Quiero comando-x para dar lugar a Mx (y en general, de comandos -> M)

he intentado el siguiente solución y no son lo que quiero: comando

  • mapeo de Meta a nivel mundial en las preferencias del sistema

  • opción de asignación de Meta sólo en Terminal.app

  • Command key to Meta in Emacs

Lo que quiero, es sólo en el interior de Terminal.app (o sólo dentro de emacs), para obligar a la tecla de comando a meta ¿Cómo logro esto?

+1

Si asigna Cmd a Meta en Terminal.app, no podrá usar Cmd-C, Cmd-V y otros accesos directos para copiar y pegar texto. Y creo que Cmd-W para cerrar pestañas también estaría deshabilitado. –

Respuesta

-2

¿Por qué insiste en Terminal.app? Simplemente instale iterm2 y siga con vida.

+0

Me gusta este acercamiento al nudo gordiano. –

+1

Tengo el mismo problema y ya estoy usando iTerm2. – hoff2

+2

Esto no responde la pregunta sobre cómo trabajar con Terminal.app. Estaría bien como comentario. –

4

Primero, en las preferencias de Terminal, en la pestaña Configuración, en la pestaña secundaria Teclado, hay una casilla de verificación "Usar opción como meta clave". No es exactamente lo que pediste, pero está integrado.

Estaba pensando que el sistema Cocoa Key Bindings podría ayudar aquí, pero según mis búsquedas, deliberadamente no permite reasignar Command. This page tiene mucha información sobre la personalización de las asignaciones de teclas y los valores predeterminados de texto de Cocoa.

3

utilizo cmd-key-happy (https://github.com/aim-stuff/cmd-key-happy) que le permite intercambiar alt y commmand claves para aplicaciones específicas.

De modo que en Terminal.app puede usar todos los modificadores de meta como se esperaba, mientras que los comandos específicos de Mac (copiar, pegar, cerrar, nuevo) funcionan con alt.

+0

He estado usando esto por un tiempo también, y he estado feliz con él :). Hasta hace poco, cuando mi empresa habilitó la entrada segura de teclado para la Terminal. No creo que tenga una forma de desactivarlo. Al menos, presionar la opción del menú no pareció cambiar nada. De lo contrario, realmente me gusta esta soln. – allyourcode

8

fwiw - iterm2 requiere un poco de atención adicional para hacer que el mapa cmd meta y jugar bien con otras aplicaciones. (Comportamiento cmd-tab, cmd-espacio (azogue), etc.) aquí está mi config que empuja hacia la operación cmd-pestaña zurdo, etc.

dentro iterm2

  • (ficha Preferencias teclas >>) necesita ser reasignado a-opción que queda cmd izquierda
  • teclas globales de acceso directo establecen lo siguiente a "no volver a asignar los modificadores"
    • cmd-espacio (hace que el trabajo de azogue normalmente)
    • CTL-cmd-espaciales (marcas mi trabajo vinculante omnifocus)
    • CMD-`- ventanas ciclo
    • cmd- -> (flecha derecha) hace que el trabajo pestaña bicicleta correctamente
  • (preferencias >> >> ficha Perfiles de teclas subpestaña) i mapa de la izquierda la opción de clave para escapar.esto proporciona el comportamiento esperado para la mayoría de aplicaciones de concha que esperan meta

esto se traduce en el uso de derecha-cmd para ciertas tareas iterm locales, pero alternar entre aplicaciones con diferentes combinaciones de teclas, etc., hace las cosas operacionales zurdos habituales y el reciclaje de mi la memoria muscular se redujo al mínimo.

+0

Esto no funcionó para mí, pero creo que es solo porque la respuesta está desactualizada. Esto es lo que hizo: en la pestaña Teclas, configure "Comando izquierdo" para que sea "Opción izquierda" (y "Comando derecho" para "Opción derecha" también si usa esa); luego, en la pestaña Llaves en la pestaña Perfiles, elija las opciones "+ Esc" para "La tecla de opción izquierda actúa como" y "La tecla de opción derecha actúa como" (sospecho que estas opciones pueden haber sido agregadas solo para usuarios de emacs). Sin embargo, perderá la capacidad de escribir caracteres especiales con las teclas de opción (pero solo en iTerm2, otras aplicaciones, incluidas las de Cocoa emacs, seguirá funcionando bien) – hoff2

+0

, además de lo anterior, está junto con la siguiente información en mi configuración de emacs: (setq mac-option-modifier 'none) (setq mac-modificador-de-comandos' meta) (setq ns-function-modifier 'hyper) – hoff2

3

FWIW: He encontrado otra manera de lograr esto que es mejor para mí (esto es en iTerm2).

Quería que emacs tuviera el mismo comportamiento en el terminal que en una ventana. He puesto mis emacs utilizar la tecla de comando como la clave meta a través del siguiente fragmento:

;;osx keys 
(setq mac-option-key-is-meta nil) 
(setq mac-command-key-is-meta t) 
(setq mac-command-modifier 'meta) 
(setq mac-option-modifier 'alt) 

Así que para conseguir mi llave de mando a comportarse como una tecla meta en iTerm2, fui a Preferencias-> Perfiles -> - > teclas y nuevas claves agregadas. El único problema es que hay que hacerlo para cada tecla por separado, pero se puede decir, por ejemplo,

keyboard shortcut: <type command-p> 
action: send escape sequence 
Esc+: p 

Así que lo hice para mis teclas + meta de uso más frecuente. Sería bueno si hubiera otro conjunto de botones de radio como para la opción/alt, donde podría decir "la tecla de comando actúa como Esc +".

Cuestiones relacionadas