Le problème «<dead-acute> est indéfini» apparaît lors de la saisie du stress grec (')

11

J'ai commencé à utiliser Emacs et j'ai écrit un texte en grec. Le problème est que le stress utilisé sur certaines lettres (ό, ύ, ί, ύ) ne fonctionne pas!

Il est généralement inséré en appuyant sur le ;(je veux dire en appuyant sur la touche à côté de L) puis sur la lettre sur laquelle sera inséré. C'est standard pour un clavier grec. Lorsque j'appuie sur, ;cela dit:

<dead-acute> is undefined. 

C-h c ; dit la même chose.

Que puis-je faire pour pouvoir utiliser cette clé?

Il fonctionne dans d'autres applications, comme un navigateur. J'utilise Ubuntu 14.04 et j'ai installé son emacspackage (Emacs 24.3.1).

Adam
la source
J'ai moi-même rencontré ce problème auparavant, mais je ne me souviens pas de la cause. Assurez-vous que votre système d'exploitation n'utilise pas une disposition de clavier différente pour Emacs. Certains systèmes d'exploitation peuvent avoir des dispositions de clavier spécifiques à l'application, donc même si cette touche fonctionne partout ailleurs, le problème pourrait être dans le système. Si ce n'est pas le cas, je suis sûr que quelqu'un aura votre réponse ici. :-)
Malabarba
(Je ne sais pas si cela aide.) J'ai ce problème en fonction du mode d'entrée du clavier de mon système d'exploitation. Mon entrée de clavier par défaut utilise des «touches mortes» afin que je puisse ajouter â © çéñtß; mais je veux parfois entrer du grec (ancien) dans Emacs en utilisant greek-ibycus4, et les deux systèmes s'affrontent. Je contourne ce problème en changeant mon entrée générale en une disposition de clé non morte (en utilisant, par exemple, setxkbmap -layout us); puis je change de mode dans Emacs; puis je reviens à la ucsméthode de saisie pour Emacs et setxkbmap -layout us -variant intlje cours pour récupérer mes clés mortes. ... Pas idéal !! Mais je n'ai pas besoin du grec très souvent non plus.
jon
Merci pour vos commentaires mais le problème est que les contraintes sont basiques en grec. Presque chaque mot a besoin de stress et ça marche évidemment partout ailleurs donc je ne sais pas quoi faire.
Adam
@Adam - J'aurais également dû demander: quelle est votre disposition de clavier par défaut pour Ubuntu? De toute évidence, vous n'écrivez pas en grec maintenant, il peut donc y avoir un décalage entre la disposition du clavier définie par le système d'exploitation et votre méthode de saisie dans Emacs. Afin d'écrire des accents et des respirations grecques dans Emacs , je dois d'abord basculer mon "clavier Ubuntu" vers une disposition QWERTY plus générique. Peut-être que vous avez une sorte de choc similaire. À partir d'un terminal, setxkbmap -queryimprime le clavier du système d'exploitation; ou vous pouvez regarder dans le unity-control-panelje pense.
jon
@jon Il dit les règles: evdev, model pc105, layout us, et lors de l'écriture grecque dit layout: gr, us.
Adam

Réponses:

6

Essayez d'ajouter (require 'iso-transl)à votre .emacsfichier.

Arthur Azevedo De Amorim
la source
1
C'est la première chose que j'ai essayée et ça ne marche pas.
Adam
Oh, désolé pour ça ... J'ai eu un problème similaire au vôtre et l'ajout de cette ligne a fait le correctif pour moi, cependant.
Arthur Azevedo De Amorim
Oui, je sais que c'est une solution courante!
Adam
5

Après de longues recherches et expérimentations, j'ai trouvé un moyen de réussir à utiliser le stress. Il faut également noter que ce n'est pas le meilleur moyen (techniquement, cela ne résout pas le problème mais vous obtenez ce que vous voulez). J'ai utilisé la commande de liaison de clé suivante pour chaque lettre qui utilise un stress:

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

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

etc...

Il suffit de dire que si quelqu'un trouve un meilleur moyen, il est le bienvenu de le partager avec nous, car ce n'est évidemment qu'un compromis.

Adam
la source
1

Remplacez le changement de langue du système d'exploitation et utilisez MULE.

Dans Emacs, appuyez sur C-\. Il demande une méthode d'entrée.

Tapez greekpuis changez de langue avec C-\.

philnik
la source
0

Si votre système d'exploitation ou l'interface d'Emacs avec lui transmet les clés mortes en tant que telles au lieu de les traiter, vous pouvez traduire les combinaisons de touches mortes dans Emacs lui-même. Utilisez input-decode-mappour cela: de cette façon, la séquence de touches est effectivement traduite en une seule pression de touche, et la boucle de commande voit a self-insert-command. Il est préférable de lier la clé à une macro dans la carte globale car cela rompt les mécanismes qui reposent sur la saisie de texte auto-insérée, tels que les groupes d'annulation.

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

Vous pouvez écrire une boucle comme celle-ci:

(mapc (lambda (string)
        (define-key input-decode-map (vector dead-acute (aref string 0)) (aref string 1)))
      '("οό" "υύ" "ιί"))
Gilles 'SO- arrête d'être méchant'
la source