Comment éviter de taper «espace» après «^» pour remonter dans le répertoire en dired?

9

^est la liaison de clé pour le déplacement vers le répertoire parent dans dired("Up directory").

Cependant, Gnu Emacsconformément Windows 7 Professional 64-bità ma disposition de clavier allemande, il ne suffit pas de taper "^" mais je dois taper de l'espace après pour faire fonctionner le raccourci clavier.

Comment puis-je redéfinir le raccourci clavier pour éviter d'avoir à appuyer sur l'espace et à ne monter qu'avec "^"?


C-h k ^<space> Retour

^ exécute la commande dired-up-directory, qui est une fonction Lisp interactive compilée dans `dired + .el '.

Il est lié à ^,.

(répertoire dired-up & AUTRE FENÊTRE en option)

Exécutez Dired sur le répertoire parent du répertoire actuel. Recherchez le répertoire parent dans ce tampon ou dans un autre tampon. Crée un tampon si nécessaire.

La plupart du temps inoffensifs
la source
4
Il s'agit d'un problème de système d'exploitation, car ce comportement ressemble à des touches rémanentes et est intégré à certains mappages de touches, comme sous us-intlLinux.
wasamasa
On dirait que wasamasa a raison, auquel cas vous devriez demander comment lier la commande à une clé différente.
Andrew Swann
@AndrewSwann: Peut-être, peut-être pas. C'est une bonne chose à vérifier, oui. Mais le comportement de Linux ne devrait pas être pertinent ici, en supposant que la microsoft-windowsbalise est appropriée.
Drew
Le moyen le plus simple de vérifier cela serait de voir si le même comportement s'applique à d'autres programmes, par exemple en tapant ^dans notepad.exe.
wasamasa
3
Je pense que vous n'avez que quelques options: (1) Utilisez une disposition de clavier différente dans laquelle ^ n'est pas une touche morte - cela se fait au niveau du système d'exploitation, pas dans emacs, ou (2) Liez une autre touche à dired-up-directoryet utilisez-la à la place, ou (3) Vivez avec le problème et tapez l'espace après ^. Je vais avec moi - même (3), mais je ne trouve irritant.
Harald Hanche-Olsen

Réponses:

11

Avec votre configuration de clavier, la touche ^ est très probablement une "touche morte". C'est une clé destinée à être utilisée en conjonction avec une autre, afin de produire un autre personnage. Dans ce cas, il est destiné à produire des caractères accentués: ^ e produira ê, ^ a produira â et ainsi de suite.

Cependant, cela ne devrait pas être spécifique à emacs: je suppose que toutes vos applications vous obligent à appuyer sur ^ et à produire un réel ^ à l'écran.

Pour résoudre ce problème, vous devez simplement utiliser une autre disposition de clavier. Dans le cas de votre mise en page allemande dans un environnement Windows, je me référerai simplement à /superuser/280005/how-to-make-and-non-dead-keys-on-windows-7- avec un clavier allemand , en espérant que ce soit la bonne chose à faire.

YoungFrog
la source
0

Je suppose que vous avez confirmé la liaison de ^Dired comme étant dired-up-directory, donc quelle commande est invoquée n'est pas le problème, sauf si vous ou quelque chose que vous chargez a conseillé cette commande. (Utilisez C-h k ^et faites-nous savoir si la commande est recommandée.)

Vous avez marqué cela avec microsoft-windows. Peut-être mentionner la version de MS Windows que vous utilisez. Je ne vois pas cela avec Windows 7 64 bits.

Voyez-vous le même comportement si vous démarrez Emacs en utilisant runemacs -Q, c'est-à-dire sans fichier init? Si oui, veuillez donner une recette ici, à partir de runemacs -Q. Dans ce cas, cela pourrait être un bogue Emacs.

Si vous ne voyez pas le problème, emacs -Qcoupez récursivement votre fichier init jusqu'à ce que vous le réduisiez pour trouver le coupable. Vous pouvez utiliser la commande comment-regionpour commenter la région du code (utilisez C-u-la pour décommenter la région).

Une fois que vous avez trouvé le code responsable, vous pouvez enquêter de plus près. Ou vous pouvez signaler ici ce que vous avez trouvé, si vous avez besoin d'aide. Pour la meilleure aide, soyez aussi précis que possible.

Quant à la redéfinition de la clé: ce n'est pas un problème - utilisez simplement (define-key dired-mode-map SOME-KEY 'dired-up-directory), où SOME-KEYest une description de la clé. Par exemple, pour lier la commande à C-o, vous pouvez utiliser ceci:

(define-key dired-mode-map (kbd "C-o") 'dired-up-directory)

Mis à jour après votre commentaire et autres -

Puisque vous voyez la même chose emacs -Q, le problème est quelque chose dans votre configuration MS Windows (c'est-à-dire en dehors d'Emacs) ou un bogue dans Emacs lui-même.

Mais d'autres commentaires indiquent clairement que le problème semble être des clés collantes dans MS Windows. Essayez de désactiver les touches collantes .

A dessiné
la source
3
C'est presque certainement hors de propos. Le commentaire de @wasamasa est cependant tout à fait pertinent. Pour élaborer un peu, le fait est que puisque ^ est collant, emacs ne voit même pas l'événement de pression de touche jusqu'à ce que l'utilisateur tape un espace.
Harald Hanche-Olsen
merci pour votre réponse détaillée! Oui, runemacs.exe -Qc'est pareil. Taper ^ dans un tampon n'entre le caractère que si je tape <espace> ou une autre touche par la suite. Idem en diredmode, il faut ^1 <space>remonter. Pour define-key: mais j'aimerais utiliser la touche ^ pour cette liaison, existe-t-il un moyen de l'empêcher d'attendre <espace>?
MostlyHarmless
@Harald: alors que puis-je faire?
MostlyHarmless