macos - para - ¿Cuál es una buena manera de lidiar con un teclado alemán cuando se usa Emacs en Mac OS X?
emax editor (7)
Tal vez es un poco extraño hacer esta pregunta en inglés porque mi problema es bastante diferente al 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. Pero como soy alemán y estoy usando un teclado alemán, por supuesto, es bastante difícil ingresar parantheses que son necesarios para programar extensamente: {
}
[
]
Para obtener estos caracteres en el diseño del teclado alemán, debe presionar las siguientes teclas:
alt-5 for ''[''
alt-8 for ''{''
que se traducen según la situación descrita anteriormente a
M-5
M-8
ambos ejecutando el 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 que sea 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 usar la tecla CAPS LOCK 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 tema? ¿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?
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 los 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í).
Con un poco de práctica, puede alternar mentalmente entre el 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, por ejemplo, "alt-shift-2" => €, "alt-e e" => é:
(setq mac-command-modifier ''meta
mac-option-modifier ''none
default-input-method "MacOSX")
Otra opción sería reubicar claves "problemáticas" como {} usando la función de traducción de teclado.
Aquamacs ( http://aquamacs.org/ ) es una versión compatible con Mac de Emacs. Tienen una vista previa (y nightlies) basada en Cocoa y Emacs 23.1.
Aquamacs tiene la opción de volver a vincular comandos de opción y meta en varias etapas entre los enlaces de mac nativos y los enlaces nativos de emacs. Deberías poder encontrar un escenario que se adapte a tus dedos.
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).
Desde 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ían funcionar para ti. Por desgracia, no hay selección para danés, así que tendré que seguir con Right Option is Meta
Esta es realmente 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 cambiar las teclas meta
y cmd
(aka super
) desde
- En mi humilde opinión, emacs admite los enlaces mac estándar (por ejemplo,
cmd-s
para guardar) bastante bien y - la clave
cmd
permanece disponible para atajos personales (por ejemplo, me gusta matar un buffer concmd-w
)
Aquí hay un fragmento de configuración para volver a vincular las claves solo cuando 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 predeterminados para mac cmd keys y meta emacs keys.
- (-) Obviamente, pierde los enlaces predeterminados para las claves reasignadas.
- (?) Si su memoria muscular hace que golpee accidentalmente las teclas en un teclado inglés, aún inserta los "caracteres correctos / previstos".
Esto fue adoptado a partir de la información un tanto obsoleta en emacswiki.org .
Terminé usando la sugerencia aquí . Recomienda usar esto en su configuración de emacs
(setq ns-right-alternate-modifier nil)
para restablecer el comportamiento predeterminado de emacs para la tecla alt / opción derecha. Esto evita que emacs reaccione a esta clave, lo que permite al sistema operativo lidiar con ella de la forma habitual.
Encontré que esta es una buena solución porque es consistente con la solución que las personas en mi trabajo implementaron en iTerm para permitirles tener acceso a [] {} | / y también aprovechar los enlaces de navegación de la línea de comando bash como alt / meta-f, -b, -d, y así sucesivamente.
En resumen, al usar 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 anterior era específico de Aquamacs, pero puedo confirmar que la instalación de emacs de vanilla para Homebrew también admite la opción.
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)