El problema "<dead-acute> es indefinido" que aparece al escribir el estrés griego (')


11

Empecé a usar Emacs y escribí un texto en griego. ¡El problema es que el estrés que se usa en algunas letras (ό, ύ, ί, ύ) no funciona!

Por lo general, se inserta presionando ;(quiero decir presionando la tecla al lado de L) y luego la letra en la que se insertará. Eso es estándar para un teclado griego. Cuando presiono el ;dice:

<dead-acute> is undefined. 

C-h c ; dice lo mismo

¿Qué puedo hacer para poder usar esta clave?

Funciona en otras aplicaciones, como un navegador. Uso Ubuntu 14.04 e instalé su emacspaquete (Emacs 24.3.1).


Me he encontrado con este problema antes, pero no recuerdo cuál fue la causa. Asegúrese de que su sistema operativo no esté usando una distribución de teclado diferente para Emacs. Algunos sistemas operativos pueden tener diseños de teclado específicos de la aplicación, por lo que, aunque esa tecla funciona en cualquier otro lugar, el problema podría estar en el sistema. Si no es así, estoy seguro de que alguien tendrá su respuesta aquí. :-)
Malabarba

(No estoy seguro si esto ayuda). Tengo este problema dependiendo de cuál sea el modo de entrada del teclado de mi sistema operativo. Mi entrada de teclado predeterminada usa 'teclas muertas' para poder agregar â © çéñtß; pero a veces quiero ingresar griego (antiguo) en Emacs usando greek-ibycus4, y los dos sistemas chocan. Evito este problema cambiando mi entrada general a un diseño de clave no muerta (usando, por ejemplo, setxkbmap -layout us); luego cambio de modo en Emacs; luego vuelvo al ucsmétodo de entrada para Emacs y corro setxkbmap -layout us -variant intlpara recuperar mis claves muertas. ... ¡¡No es ideal!! Pero tampoco necesito griego muy a menudo.
Jon

Gracias por sus comentarios, pero el problema es que las tensiones son básicas en griego. Casi todas las palabras necesitan un estrés y obviamente está funcionando en cualquier otro lugar, así que no sé qué hacer.
Adam

@ Adam - También debería haber preguntado: ¿cuál es su distribución de teclado predeterminada para Ubuntu? Obviamente, no está escribiendo griego ahora, por lo que puede haber una falta de coincidencia entre la distribución del teclado definido por el sistema operativo y su método de entrada en Emacs. Para poder escribir acentos griegos y respiraciones en Emacs , primero necesito cambiar mi "teclado Ubuntu" a un diseño QWERTY más genérico. Quizás tengas un choque similar. Desde una terminal, setxkbmap -queryimprimirá el teclado del sistema operativo; o puedes mirar en el unity-control-panelcreo.
Jon

@jon Dice reglas: evdev, modelo pc105, diseño nosotros, y al escribir en griego dice diseño: gr, nosotros.
Adam

Respuestas:



5

Después de una extensa búsqueda y experimentación, encontré una manera de tener éxito usando el estrés. También debe tenerse en cuenta que no es la mejor manera (técnicamente no resuelve el problema, pero obtienes lo que quieres). Utilicé el siguiente comando de vinculación de teclas para cada letra que usa un énfasis:

(global-set-key (kbd "<dead-acute> α") "ά")

(global-set-key (kbd "<dead-acute> ε") "έ")

etc ...

Basta decir que si alguien encuentra una mejor manera, puede compartirla con nosotros, ya que obviamente esto es solo un compromiso.


1

Anule el cambio de idioma del sistema operativo y use MULE.

En Emacs, presione C-\. Pide un método de entrada.

Escriba greeky luego cambie de idioma con C-\.


0

Si su sistema operativo o la interfaz de Emacs de alguna manera pasa claves muertas como tales en lugar de procesarlas, puede traducir las combinaciones de teclas muertas en el propio Emacs. Úselo input-decode-mappara eso: de esta manera, la secuencia de teclas se traduce realmente en una sola pulsación de tecla, y el bucle de comando ve un self-insert-command. Esto es preferible a vincular la clave a una macro en el mapa global porque esto rompe los mecanismos que dependen de que la entrada de texto se inserte automáticamente, como los grupos de deshacer.

(define-key input-decode-map [dead-acute ?ο] ?ό)

Puedes escribir un bucle como este:

(mapc (lambda (string)
        (define-key input-decode-map (vector dead-acute (aref string 0)) (aref string 1)))
      '("οό" "υύ" "ιί"))
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.