2010-02-01 5 views
9

Quizás es un poco raro hacer esta pregunta en inglés porque mi problema es más bien no inglés. Soy usuario de Mac OS X y estoy en camino de aprender Emacs. Decidí usar la compilación Emacs 23.1 Cocoa que de forma predeterminada usa la tecla alt/opción del teclado Mac como metakey. Sino porque soy alemán y estoy usando un teclado alemán, por supuesto, conseguir de bastante complicado para entrar parantheses que son necesarios para la programación ampliamente: {}[]¿Cuál es una buena manera de manejar un teclado alemán cuando se usa Emacs en Mac OS X?

para obtener estos caracteres en el teclado alemán tiene para presionar las siguientes teclas:

alt-5 for '[' 
alt-8 for '{' 

que se traducen de acuerdo con la situación descrita anteriormente a

M-5 
M-8 

ambos corriendo º e comando digit-argument en Emacs.

No estoy seguro de cómo solucionar este problema. Sé que puede cambiar la clave real que se debe usar como la tecla meta (por ejemplo, podría cambiar la tecla meta para ser la tecla de comando). Pero creo que cada opción tendrá un costo y tendrá algunas desventajas obvias ya que "anula" algún comportamiento predefinido del sistema operativo que pueda ser necesario al editar con un teclado de idioma extranjero.

Por ahora, la mejor opción para mí parece ser utilizar la tecla BLOQ MAYÚS como la tecla meta, ya que esta opción no interfiere con las combinaciones de teclas preexistentes.

¿Cuáles son sus experiencias con respecto a este problema? ¿Utiliza (no inglés) un teclado inglés (diseño) mientras codifica? ¿No te confunden con tales diseños de teclado dependientes del contexto? ¿O existen algunas mejores prácticas que clave usar como metakey en un teclado alemán o similar? O incluso algunas opciones de configuración?

+0

Etiqueta 'german' eliminada como parte de la [** 2012 limpieza **] (http://meta.stackexchange.com/questions/128315/the-great-stack-overflow-tag-question-cleanup-of -2012). –

Respuesta

1

Puede presionar "Comando"; para cambiar la clave de opción entre ser la clave meta y ser la clave de opción normal. Creo que incluso puedes hacer esto en el medio de una secuencia de teclas. Cuando necesito ingresar signos diacríticos en Emacs, solo presiono "Comando"; en lugar de usar los diversos modos de entrada en Emacs. También puede acceder a la configuración a través de Opciones -> Opción -> tecla de opción es Meta.

La otra opción es volver a enlazar claves en su archivo .emacs.

Hablando de cambiar diseños de teclado, cambio entre Dvorak y US Qwerty con la frecuencia suficiente como para que no me moleste, y son mucho más diferentes que los diseños de EE. UU. Y Alemania. (Dvorak reduce la tensión de la mano para mí).

6

Con un poco de práctica, puede cambiar mentalmente hacia adelante y hacia atrás entre un diseño de teclado de EE. UU. Y DE; incluso las Y intercambiadas y Z se convierten en algo natural después de un tiempo. Lo hice durante años mientras trabajaba en Alemania.

Pero incluso con un diseño de teclado de EE. UU., Todavía hay caracteres que no puede ingresar sin Alt. Personalmente uso Command as Meta por este motivo, dejando Alt/Option para las teclas predeterminadas del OS X incorporado, p. => € "alt-shift-2", "alt-e e" => E:

(setq mac-command-modifier 'meta 
     mac-option-modifier 'none 
     default-input-method "MacOSX") 

Otra opción sería la de trasladar las teclas "problema" como {} utilizando la función de teclado de traducir.

+0

¡Esto funciona increíble! Si desea tener un teclado alemán ISO "real", también puede instalar el diseño de teclado correspondiente, consulte http://codewut.de/content/pc-keyboard-layout-mac-german. Si puede tocar el tipo a ciegas, entonces también puede cambiar cmd con alt y tiene casi un teclado alemán normal. – ayckoster

+0

Personalmente (con un teclado sueco/finlandés) Encuentro útil establecer mac-right-option-modifier en 'none, pero deje el izquierdo como' meta. Entonces puedo usar la tecla Alt derecha para obtener esos paréntesis, etc., y la izquierda funciona como una tecla meta. Lo cual es bueno, si uno ya está usado o puede acostumbrarse a eso. – tml

1

Aquamacs (http://aquamacs.org/) es una versión para macros de Emacs. Tienen una vista previa (y nightlies) basada en Cocoa y Emacs 23.1.

Aquamacs tiene la opción de volver a enlazar comando de opción y meta en varias etapas entre las combinaciones de teclas nativas y los enlaces nativos de emacs. Deberías poder encontrar un escenario que se adapte a tus dedos.

2

Me doy cuenta de que esta es una vieja pregunta, pero acabo de cambiar a mac y tuve problemas similares (aunque con un diseño de teclado danés).

En el menú, seleccione Options ->Option, Command, Meta keys ->Right Option is Meta. Ahora puede usar la tecla Alt derecha como meta, mientras que la tecla Alt izquierda no se toca. P.ej. puede usarlo para escribir caracteres "inusuales" (que pueden no ser tan inusuales, si usted es un programador).

También hay una selección de ... Meta & German (y otros langiages), que podría funcionar para usted. Por desgracia, no hay ninguna selección para el idioma danés, así que tendré que seguir con Right Option is Meta

0

Puede usar la configuración de emacs 22, que solía funcionar bien.

(setq mac-option-key-is-meta nil) 
(setq mac-command-key-is-meta t) 
(setq mac-command-modifier 'meta) 
(setq mac-option-modifier nil) 
1

Terminé usando la sugerencia here. Se recomienda el uso de esto en sus emacs config

(setq ns-right-alternate-modifier nil) 

para restablecer el comportamiento predeterminado de emacs para la tecla de la derecha Alt/Opción. Esto evita que emacs reaccione a esta clave, lo que permite al sistema operativo lidiar con ella de la forma habitual.

Me pareció una buena solución porque es coherente con la solución que las personas de mi trabajo implementaron en iTerm para permitirles tener acceso a [] {} | \ y también aprovechar la línea de comando bash de navegación enlaces como alt/meta-f, -b, -d, y así sucesivamente.

En resumen, al utilizar esta configuración, el único dolor que tuve que sufrir fue acostumbrarme a usar right-alt para [] {} | \ y así sucesivamente, y left-alt para los comandos de emacs.

Por último, el enlace de arriba fue específico para Aquamacs, pero puedo confirmar que la instalación de vamailla emacs para Homebrew también es compatible con la opción.

+0

Esto también es consistente con el diseño de teclado alemán "estándar" (es decir, Windows), donde el "alt-gr" derecho le da [] {} | \ y el "alt" izquierdo funciona de fábrica para emacs. – flooose

1

Esto realmente es una vieja pregunta. Sin embargo, enfrenté esto también y hay otra solución: volver a vincular las claves en cuestión.

No quería intercambiar meta y cmd (también conocido como super) claves, ya

  • emacs en mi humilde opinión es compatible con los enlaces mac estándar (por ejemplo cmd-s para Save) bastante bien y
  • la tecla cmd sigue estando disponible para atajos personales (por ejemplo, me gusta matar un búfer con cmd-w)

Aquí hay un fragmento de configuración para volver a enlazar las teclas w uando se ejecuta en un Mac:

(if (eq system-type 'darwin) 
    (progn 
    ;; "fix" the broken keyboard 
    (global-set-key "\M-l" '(lambda() (interactive) (insert "@"))) 
    (global-set-key "\M-5" '(lambda() (interactive) (insert "["))) 
    (global-set-key "\M-6" '(lambda() (interactive) (insert "]"))) 
    (global-set-key "\M-7" '(lambda() (interactive) (insert "|"))) 
    (global-set-key "\M-/" '(lambda() (interactive) (insert "\\"))) 
    (global-set-key "\M-8" '(lambda() (interactive) (insert "{"))) 
    (global-set-key "\M-9" '(lambda() (interactive) (insert "}"))) 
    (global-set-key "\M-n" '(lambda() (interactive) (insert "~"))))) 

Pros/Contras:

  • (+) mantiene los enlaces por omisión para mac cmd llaves y llaves emacs meta.
  • (-) Obviamente, pierde los enlaces predeterminados para las claves reasignadas.
  • (?) Si su memoria muscular hace que presione accidentalmente las teclas en un teclado inglés, todavía inserta los "caracteres correctos/previstos".

Esto se adoptó a partir del somewhat outdated information in emacswiki.org.

Cuestiones relacionadas