Clés mortes dans Emacs avec ibus


13

Je viens de passer à la version 13.10 et j'ai remarqué que les touches mortes ne fonctionnent plus dans emacs (une frappe sur 'conduit emacs à afficher <dead-acute> is undefinedau lieu d'attendre la clé suivante. De plus, l'utilisation de la clé de composition mène à <Multi_key> is undefinedet il est impossible de utiliser des raccourcis clavier tels que <M-^>. D'autres applications fonctionnent bien pour autant que je sache .

Une brève recherche sur Internet a suggéré (require 'iso-transl)de .emacs. Cela résout le premier problème, mais pas les autres.

Une autre solution de contournement possible sur le Web est de lancer emacs avec une XMODIFIERSvariable vide , car XMODIFIERS='' emacs, au lieu de XMODIFIERS= @im=ibuscela semble être la valeur par défaut dans 13.10. Ensuite, tout fonctionne bien, mais cela ressemble à un coup de coude. Existe-t-il un moyen de faire fonctionner emacs avec ibus sur ce sujet?

Mise à jour: j'observe le même comportement en 14.04.

Mise à jour: contenu .dmrccomme demandé dans les commentaires:

[Desktop]
Session=xubuntu
Language=fr_FR
Layout=us       intl
Langlist=fr_FR:en
LCMess=fr_FR.UTF-8

Le nom correct du package est iso-transl(notez le tiret.)
Lars Haugseth

@LarsHaugseth bien repéré, merci. J'ai modifié la question en conséquence.
Virgile

J'utilise emacs avec les touches AltGr Dead et cela fonctionne très bien.
Charo

Quelle version d'emacs avez-vous?
Charo

@Charo GNU Emacs 24.3.1 (x86_64-pc-linux-gnu, GTK + Version 3.10.7) du 2014-03-07 sur lamiak, modifié par Debian. J'ai toujours ce problème dans 14.04, je mettrai à jour la question en conséquence
Virgile

Réponses:


2

Voici les choses que vous pouvez essayer.

Modifiez le fichier ~ / .dmrc et assurez-vous de définir ces lignes dessus:

Language=en_US.utf8
Langlist=en_US:en
LCMess=en_US.UTF-8

Modifiez le fichier ~/.emacset ajoutez-y ces lignes au lieu de (require 'iso-transl) :

(prefer-coding-system 'utf-8)
(set-default-coding-systems 'utf-8)
(set-terminal-coding-system 'utf-8)
(set-keyboard-coding-system 'utf-8)
(setq default-input-method "latin-1-prefix")
(defun my-set-default-input-method ()
  (set-input-method 'latin-1-prefix))
(add-hook 'text-mode-hook 'my-set-default-input-method)

Vous devrez ajouter des lignes similaires à la dernière si vous utilisez les touches mortes avec d' autres modes de emacs (par exemple, latex-mode, tex-mode, html-mode...).

Déconnectez-vous puis reconnectez-vous.

Néanmoins, s'il vous arrive que des touches mortes ne fonctionnent pas dans emacs, essayez de taper C-\et de voir si elles fonctionnent.

Mise à jour:

Si cela ne fonctionne pas, la seule chose qui me vient à l'esprit, c'est que vous définissez deux dispositions de clavier dans les paramètres de votre système

  • Clés mortes internationales américaines (celle que vous avez)
  • Anglais US

et ajoutez un sélecteur de disposition de clavier de la manière expliquée ici:

Comment changer de combinaison de clavier de langue?

Lorsque vous travaillez avec emacs, choisissez la disposition "English US". Si vous avez ajouté à votre .emacsfichier les lignes que j'ai mentionnées ci-dessus, cela forcera votre clavier à se comporter comme un "clavier à touches mortes" dans emacs. Je sais que cela peut être ennuyeux, mais c'est la seule solution à votre problème qui me vient à l'esprit.


J'ai ajouté les lignes en question, mais cela ne change rien. `C-` non plus. Merci pour les suggestions de toute façon.
Virgile

Essayez de modifier certaines lignes de votre fichier ~ / .dmrc comme indiqué dans ma réponse.
Charo

Mais cela ne signifie-t-il pas que la langue de ma session sera l'anglais?
Virgile

@Virgile: Mais voyons si de cette façon le problème disparaît. Après avoir essayé cela, vous pouvez toujours revenir à vos paramètres régionaux français en modifiant à nouveau votre fichier ~ / .dmrc. J'ai lu ça ici .
Charo

@Virgile: Voir la "Mise à jour" de ma réponse.
Charo
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.