16 votes

Dans le Terminal, je ne peux pas taper le e minuscule

Si j'ouvre une fenêtre de terminal et que je tape la lettre "e" (sans guillemets bien sûr), il émet un bip et ne tape pas la lettre. Toutes les autres lettres fonctionnent parfaitement dans le terminal. Le E majuscule fonctionne aussi. Seul le e minuscule ne fonctionne pas.

Dans toutes les autres applications de mon ordinateur, le e minuscule fonctionne sans problème, ce n'est donc pas un problème de clavier.

Cela a commencé au cours de la semaine dernière. J'utilise beaucoup le terminal dans mon travail et cela n'a jamais été un problème. J'ai redémarré (sans résultat). J'ai réinitialisé le terminal (sans résultat).

Comme je ne connais pas la date exacte à laquelle cela a commencé, je ne suis pas sûr d'avoir effectué des modifications ou installé des logiciels. J'essaie de supprimer tout ce que j'ai installé récemment.

Pour info, j'ai essayé d'utiliser l'iTerm2 d'un tiers et cela fait la même chose.

De plus, si je colle quelque chose avec un e minuscule, il fait la même chose - il ne le prend pas. Il doit s'agir d'un problème de configuration du terminal bash, je pense.

En fait, j'ai copié ce qui suit sens et ensuite je l'ai collé dans le Terminal. Qu'est-ce qui apparaît ? sns et vous entendez deux bips.

En outre, au cas où cela ne serait pas clair, cela se produit avec le clavier intégré du MBP ainsi qu'avec un clavier externe. Sur la base de ces éléments et du problème de collage, je ne pense pas qu'il s'agisse d'un problème de clavier physique.

Specs : MacBook Pro 2015, OS X entièrement mis à jour

1 votes

Le comportement persiste-t-il si vous passez à un autre shell, comme csh ou tcsh ?

2 votes

C'est bizarre... essaie d'ouvrir applescript en le recherchant dans spotlight, et tapez dans delay 10 puis appuyez sur la touche retour et écrivez tell application "System Events" to keystroke "e" exactement comme écrit. Lorsque vous appuyez sur play, il attendra 10 secondes, puis appuiera sur e tout seul. Allez au terminal avant l'expiration de ce délai et testez-le. Si cela ne fonctionne pas, c'est que vous avez un sérieux problème interne avec votre ordinateur.

1 votes

Que se passe-t-il si vous cat filnam.txt où le fichier appelé filnam.txt contient du texte ASCII avec e ?

8voto

Pierce Points 1496

Déboguons-le.

  1. Changez de coquille et réessayez. (Crédit à @Kent) Dans le terminal :
    • $(which zsh)
  2. Commentez toutes les lignes dans .bash_profile , .bashrc etc. et ouvrez un nouvel onglet/fenêtre de terminal. Si cela résout le problème, quelque chose chargé dans l'environnement shell consomme la lettre e pour des raisons que la science ne sera peut-être jamais capable d'expliquer.
  3. Essayez cat un fichier qui contient la lettre e pour voir s'il s'affiche : (Crédit photo : @techraf)
    • Ouvrez un éditeur de texte (pas un terminal)
    • Entrez un texte avec quelques e et sauvegarder le fichier ( foo.txt ?)
    • En terminal, cat le dossier :
      • cd /path/to/folder; cat foo.txt
    • Si e s render alors le terminal peut le gérer, sinon, c'est super bizarre.
  4. Essayez applescript. (Crédit : @ALX)

    • Ouvrir l'éditeur Applescript

    • Créez un fichier Applescript avec ces contenus :

      delay 10
      tell application "System Events" to keystroke "e"
    • Exécutez le fichier script puis naviguez rapidement dans la fenêtre du terminal. Dans quelques secondes, elle appuiera virtuellement sur la touche e et, espérons-le, s'affichera dans votre terminal. Cela indiquerait qu'il pourrait y avoir un problème de pilote d'entrée/de périphérique (bien que je ne sache pas ce que cela pourrait être).

Je ne vais pas mentir, je suis absolument fasciné par ce problème et je suis impatient d'en connaître la cause. Ce n'est pas du matériel car cela fonctionne dans d'autres applications, ce qui signifie que c'est du logiciel et je ne peux pas imaginer qui avalerait la lettre e avec le code.

1 votes

Il est préférable d'essayer un interpréteur de commandes en C, par exemple tcsh, car il ne lira pas (ne peut pas lire) les fichiers de démarrage de bash, ou même de lancer un interpréteur, par exemple Python ou perl, et d'y taper les caractères suivants

1 votes

Oui, je suis en fait fasciné par ce problème.

0 votes

"Je ne peux pas imaginer qui pourrait avaler la lettre e avec un code" Ce gars pourrait savoir quelque chose... upload.wikimedia.org/wikipedia/en/5/5e/Cisforcookie.jpg

7voto

mcint Points 191

Je viens de trouver ce fil de discussion après avoir rencontré le même problème.

.inputrc

J'avais 2 lignes dans .inputrc , a ajouté dans un moment d'ignorance insouciante, à partir de e y s (qui sont des configurations bash valides, mais pas des configurations readline valides). Ils semblent avoir été interprétés comme des alias de liaison de touches pour la personnalisation de la ligne de lecture.

Supprimer les lignes de .inputrc J'ai confirmé, j'ai résolu mon problème.

Merci @user208052 pour le rappel pertinent à vérifier. .inputrc .

La configuration Readline de l'interpréteur de commandes

L'obus bind permet de visualiser et de modifier la configuration de Readline. (Voir help bind . help est man pour les commandes internes au shell).

Voir bind -p (peut-être un tuyau à moins |less ou rediriger vers un fichier > binds.txt ). Il s'agit de "énumère les fonctions et les liaisons sous une forme qui peut être réutilisée comme entrée". .

Il comporte des entrées comme "c": self-insert pour chaque caractère de la gamme ASCII, de sorte que la configuration foirée peut remplacer self-insert avec une autre fonction Readline.

Il y a quelques perles ; le visionnage m'a juste appris que C-= ( \e= ) imprime les compléments possibles, dans ma configuration par défaut. Cela semble montrer la configuration actuelle complète de Readline pour votre shell... assez utile et puissant. Un bon moyen d'explorer.

Test de bout en bout

  1. e travaux

  2. insérer une ligne erronée dans .inputrc ouvrir un nouveau shell

    et completion-map-case on
    set completion-ignore-case on
  3. e est apparemment sans objet

  4. bind -p ( | grep -i '"E"' ) montre

    • "E": self-insert ,
    • mais non "e": self-insert
    • alors que "A": self-insert y "a": self-insert sont présents.

2voto

zencraft Points 163

Je suis un peu rouillé, mais le collage dans un Terminal fonctionne différemment du collage dans un programme GUI : chaque caractère est envoyé comme une frappe séparée, et non comme une copie du presse-papiers vers le tampon de l'application. Ainsi, si le "e" a été modifié, il le sera également dans le collage.

Vérifiez les endroits suivants :

System Preferences > Keyboard > Shortcuts

~/Library/KeyBindings/KeyBindings.dict

$ defaults read com.apple.Automator NSUserKeyEquivalents

0 votes

Vérifier quoi exactement ?

0 votes

Si le e a été modifié.

1 votes

En supposant que le PO n'ait pas trop d'expérience dans ce domaine, que doit-il rechercher exactement ? Un exemple d'une telle cartographie pourrait être utile.

1voto

Kent Points 6002

Vous pouvez également essayer de configurer le terminal pour qu'il ouvre un éditeur de texte (emacs, vi, etc.) lorsqu'une nouvelle fenêtre est ouverte. Par exemple, dans les préférences du Terminal pour "Shell", vous pouvez faire en sorte que Exécuter la commande comme /usr/bin/emacs . Si vous ne pouvez pas entrer e dans le panneau des préférences, alors il se passe quelque chose d'encore plus étrange que ce qui a été proposé jusqu'à présent...

Lorsqu'une nouvelle fenêtre de terminal est ouverte, emacs sera devrait démarrer, et vous pouvez essayer d'appuyer sur e etc. Je n'ai aucune idée de ce qui va se passer, mais comme @Pierce ci-dessus, je suis curieux de savoir ce qui se passe.

0voto

Daryl Monge Points 87

Vérifiez le réglage de la stty et assurez-vous que 'e' n'a pas été accidentellement défini comme le retour arrière ou autre. Je suis passé par là, j'ai fait ça. Stty quelque chose \e Je le ferais La recommandation de désactiver/commenter .bash* le découvrirait probablement aussi.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X