Si j'ouvre une fenêtre de terminal et que je tape la lettre "e" (sans guillemets bien sûr), elle émet un bip et ne tape pas la lettre. Toutes les autres lettres fonctionnent très bien dans Terminal. E majuscule fonctionne aussi. Ce n'est pas le cas des e minuscules.
Dans toutes les autres applications de mon ordinateur, les e minuscules fonctionnent sans problème, ce n'est donc pas un problème de clavier.
Cela a commencé au cours de la dernière semaine. J'utilise beaucoup Terminal dans mon travail et cela n'a jamais posé de problème. J'ai redémarré (pas résolu). J'ai réinitialisé le terminal (n'a pas résolu).
Comme je ne connais pas la date exacte à laquelle cela a commencé, je ne sais pas si j'ai apporté des modifications ou installé un logiciel. J'essaie de supprimer tout ce que j'ai installé récemment.
Pour info j'ai essayé d'utiliser l'iTerm2 tiers et ça fait la même chose.
ÉGALEMENT - si je colle quelque chose avec un e inférieur, il fait la même chose - ne le prendra pas. Je pense que ce doit être un problème de configuration de bash terminal.
En fait, j'ai copié le sens suivant , puis je l'ai collé dans Terminal. Qu'est-ce qui apparaît? sns et vous pouvez entendre deux bips.
En outre - au cas où cela ne serait pas clair - cela se produit avec le clavier intégré sur le MBP ainsi qu'avec un clavier externe. Sur la base de cela et du problème de collage, je ne pense pas que ce soit un problème de clavier physique en aucune façon.
Spécifications: MacBook Pro 2015, entièrement à jour OS X
applescript
en le recherchant sous les projecteurs, et tapezdelay 10
puis appuyez sur Entrée et écriveztell application "System Events" to keystroke "e"
exactement comme écrit. Lorsque la lecture est enfoncée, elle attendra 10 secondes, puis appuyez sur e par elle-même. Accédez au terminal avant l'expiration de ce délai et testez-le. Si cela ne fonctionne pas, vous avez un grave problème interne avec votre ordinateur.cat filnam.txt
le fichier appeléfilnam.txt
contient du texte ASCIIe
?Réponses:
Déboguons-le.
$(which zsh)
.bash_profile
,.bashrc
etc. et ouvrez un nouvel onglet Terminal / fenêtre. Si cela résout le problème, quelque chose en cours de chargement dans l'environnement shell consomme la lettree
pour des raisons que la science ne pourra peut-être jamais expliquer.cat
un fichier contenant la lettree
pour voir si elle s'affichera: (Crédit à @techraf)e
s et enregistrez le fichier (foo.txt
?)cat
le fichier:cd /path/to/folder; cat foo.txt
e
le rendu est alors le terminal peut le gérer, sinon, c'est super bizarre.Essayez applescript. (Crédit à @ALX)
Créez un fichier Applescript avec ces contenus:
Exécutez le fichier de script, puis accédez rapidement à la fenêtre du terminal. En quelques secondes, il appuiera virtuellement sur la
e
touche et, espérons-le, apparaîtra dans votre terminal. Cela indiquerait qu'il pourrait y avoir un problème de pilote d'entrée / 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 j'ai hâte d'en connaître la cause. Ce n'est pas du matériel, car il fonctionne dans d'autres applications, ce qui signifie que c'est un logiciel et je ne peux pas imaginer qui avalerait la lettre
e
avec du code.la source
Je viens de trouver ce fil après avoir rencontré le même problème.
.inputrc
J'ai eu 2 lignes
.inputrc
, ajoutées dans un moment d'ignorance négligente, en commençant pare
ets
(qui sont une configuration bash valide, mais pas une configuration readline valide). Ils semblent avoir été interprétés comme des alias de liaison de touches pour la personnalisation de la ligne de lecture.La suppression des lignes de
.inputrc
, j'ai confirmé, a résolu mon problème.Merci @ user208052 pour le rappel pertinent à vérifier
.inputrc
.Configuration Readline du shell
La
bind
commande du shell permet de visualiser et de modifier la configuration de Readline. (Voirhelp bind
.help
Estman
pour les commandes internes au shell).Afficher
bind -p
(peut-être|less
rediriger vers moins ou rediriger vers un fichier> binds.txt
). Il "liste les fonctions et les liaisons sous une forme qui peut être réutilisée en entrée" .Il a des entrées comme
"c": self-insert
pour chaque caractère de la plage ASCII, donc la configuration vissée peut remplacerself-insert
par une autre fonction Readline.Il a des gemmes; le visualiser m'a juste appris que
C-=
(\e=
) imprime des complétions possibles, dans ma configuration par défaut. Il semble montrer la configuration actuelle complète de Readline pour votre shell ... assez utile et puissant. Bon pour explorer.Test de bout en bout
e
travauxinsérer une ligne erronée
.inputrc
, ouvrir un nouveau shelle
est apparemment un no-opbind -p
(| grep -i '"E"'
) montre"E": self-insert
,"e": self-insert
"A": self-insert
et"a": self-insert
sont présents.la source
Je suis un peu rouillé, mais le collage dans Terminal fonctionne différemment du collage dans un programme GUI: chaque caractère est envoyé sous forme de séquence de touches distincte, et non sous forme de memcopy du presse-papiers vers le tampon de l'application. Donc, si le "e" a été remappé, il sera également remappé dans la pâte.
Vérifiez les emplacements suivants:
System Preferences > Keyboard > Shortcuts
~/Library/KeyBindings/KeyBindings.dict
$ defaults read com.apple.Automator NSUserKeyEquivalents
la source
e
clé a été reconfiguré.Vous pouvez également essayer de configurer le terminal pour qu'il ouvre un éditeur de texte (emacs, vi, etc.) à l'ouverture d'une nouvelle fenêtre. Par exemple, dans les préférences du terminal pour "Shell", vous pouvez lui demander d' exécuter la commande telle que
/usr/bin/emacs
. Si vous ne pouvez pas entrer edans le volet des préférences, alors quelque chose d'encore plus étrange que ce qui a été proposé jusqu'à présent se passe ...Quand une nouvelle fenêtre du terminal est ouvert, emacs
sedoit commencer, et vous pouvez essayer d'appuyer sur eetc. je ne sais pas ce qui se passera, mais comme @Pierce ci - dessus, je suis curieux de savoir ce qui est peut - être en cours.la source
Vérifiez le paramètre stty et assurez-vous que «e» n'a pas été accidentellement défini comme espace arrière ou similaire. J'y suis allé, j'ai fait ça. Stty quelque chose \ e le ferait La recommandation de désactiver / commenter .bash * le découvrirait probablement aussi.
la source
J'ai eu le même problème qui a été causé par une faute de frappe dans
/etc/inputrc
:au lieu de
la source
Étrangement, je viens de lancer ce macOS 10.13.6 sur un MacBook Air. Un utilisateur allait bien, le terminal utilisateur administrateur exécutant bash n'accepterait pas la lettre minuscule «a» - ne pas taper, ne pas coller, etc. En exécutant zsh, ce serait bien. D'autres utilisateurs, très bien. Je pense que cela s'était déjà produit auparavant et l'a corrigé en supprimant le fichier /Users/admin/.inputrc et .bash_profile. Je les ai rajoutés et ça marche. Curieusement, il n'y a rien d'important dans ces fichiers. .inputrc est simplement "set complete-ignore-case On", et il y a quelques alias de ligne de commande dans .bash_profile. Honnêtement, quelque chose d'autre pourrait être en place mais fonctionne pour l'instant.
Je me souviens avoir dû supprimer et rajouter ces fichiers sur ce problème. Eh bien, ces fichiers pourraient au moins déclencher ou réinitialiser le problème.
la source
Supprimez simplement le fichier .inputrc, il se trouve dans le répertoire racine. (C'est un fichier caché).
la source