Wenn ich ein Terminalfenster öffne und den Buchstaben "e" eingebe (natürlich ohne Anführungszeichen), ertönt ein Signalton und der Buchstabe wird nicht eingegeben. Jeder zweite Buchstabe funktioniert im Terminal einwandfrei. Großbuchstaben E funktioniert auch. Nur die Kleinschreibung e nicht.
In jeder anderen App auf meinem Computer funktioniert e ohne Probleme, es handelt sich also nicht um ein Tastaturproblem.
Dies begann irgendwann in der letzten Woche. Ich benutze Terminal viel in meinem Job und das war noch nie ein Problem. Ich habe neu gestartet (nicht behoben). Ich habe Terminal zurückgesetzt (nicht behoben).
Da ich das genaue Datum des Starts nicht kenne, bin ich mir nicht sicher, ob ich Änderungen vorgenommen oder Software installiert habe. Ich versuche, alles zu entfernen, was ich kürzlich installiert habe.
Zu Ihrer Information Ich habe versucht, iTerm2 von Drittanbietern zu verwenden, und es funktioniert genauso.
AUCH - wenn ich etwas mit einem niedrigeren e einfüge, macht es das gleiche - wird es nicht nehmen. Es muss ein Terminal-Bash-Konfigurationsproblem sein, denke ich.
Tatsächlich habe ich den folgenden Sinn kopiert und ihn dann in Terminal eingefügt. Was erscheint? sns und Sie können zwei Pieptöne hören.
Auch - falls es unklar ist - geschieht dies mit der im MBP eingebauten Tastatur sowie einer externen Tastatur. Basierend auf diesem und dem Einfügeproblem denke ich nicht, dass dies in irgendeiner Weise ein Problem mit der physischen Tastatur ist.
Technische Daten: 2015 MacBook Pro, voll auf dem neuesten Stand von OS X
applescript
indem Sie es im Rampenlicht suchen unddelay 10
dann die Eingabetaste drücken undtell application "System Events" to keystroke "e"
genau so schreiben , wie es geschrieben wurde. Wenn die Wiedergabe gedrückt wird, wartet sie 10 Sekunden und drückt dann e von selbst. Gehen Sie vor Ablauf dieser Zeit zum Terminal und testen Sie es. Wenn dies nicht funktioniert, liegt ein ernstes internes Problem mit Ihrem Computer vor.cat filnam.txt
wo die aufgerufene Dateifilnam.txt
ASCII-Text enthält, mite
?Antworten:
Lassen Sie es uns debuggen.
$(which zsh)
.bash_profile
,.bashrc
usw. , und öffnen Sie ein neues Terminal Tab / Fenster. Wenn dies das Problem behebt, verbraucht etwas, das in die Shell-Umgebung geladen wird, den Briefe
aus Gründen, die die Wissenschaft möglicherweise nie erklären kann.cat
Sie, eine Datei mit dem Buchstabene
zu erstellen, um festzustellen, ob dieser überhaupt angezeigt wird: (Dank an @techraf)e
s ein und speichere die Datei (foo.txt
?)cat
die Datei:cd /path/to/folder; cat foo.txt
e
s rendert, kann das Terminal damit umgehen, wenn nicht, dann ist das super komisch.Versuchen Sie es mit Applescript. (Gutschrift an @ALX)
Erstellen Sie eine Applescript-Datei mit folgenden Inhalten:
Führen Sie die Skriptdatei aus und navigieren Sie schnell zum Terminalfenster. In ein paar Sekunden wird es praktisch die
e
Taste drücken und hoffentlich in Ihrem Terminal angezeigt. Dies würde darauf hinweisen, dass möglicherweise ein Problem mit dem Eingabe- / Gerätetreiber vorliegt (obwohl ich keine Ahnung habe, was das sein könnte).Ich werde nicht lügen, ich bin absolut fasziniert von diesem Thema und kann es kaum erwarten zu erfahren, was die Ursache ist. Es ist keine Hardware, weil es in anderen Anwendungen funktioniert, was bedeutet, dass es Software ist, und ich kann mir nicht vorstellen, wer den Brief
e
mit Code verschlucken würde .quelle
Ich habe diesen Thread gerade gefunden, nachdem ich auf dasselbe Problem gestoßen bin.
.inputrc
Ich hatte 2 Zeilen in
.inputrc
, in einem Moment der nachlässigen Ignoranz hinzugefügt, beginnend mite
unds
(die gültige Bash-Konfiguration, aber keine gültige Readline-Konfiguration sind). Sie scheinen als Tastenkürzel für die Readline-Anpassung interpretiert worden zu sein.Das Entfernen der Linien von
.inputrc
, habe ich bestätigt, mein Problem gelöst.Vielen Dank an @ user208052 für die entsprechende Erinnerung
.inputrc
.Die Readline-Konfiguration der Shell
Der
bind
Befehl der Shell ermöglicht das Anzeigen und Ändern der Readline-Konfiguration. (Siehehelp bind
.help
Istman
für Shell-interne Befehle).Ansicht
bind -p
(möglicherweise Pipe zu weniger|less
oder Weiterleitung zu einer Datei> binds.txt
). Es listet Funktionen und Bindungen in einer Form auf, die als Eingabe wiederverwendet werden kann .Es hat Einträge wie
"c": self-insert
für jedes Zeichen im ASCII-Bereich, so dass die verkorkste Konfiguration möglicherweise durchself-insert
eine andere Readline-Funktion ersetzt wird.Es hat einige Edelsteine; Durch das Anzeigen wurde mir lediglich beigebracht, dass
C-=
(\e=
) in meiner Standardkonfiguration mögliche Vervollständigungen ausgibt. Es scheint die vollständige aktuelle Konfiguration von Readline für Ihre Shell zu zeigen ... ziemlich nützlich und leistungsstark. Gut zum Erkunden.End-to-End-Test
e
funktioniertfüge eine fehlerhafte Zeile ein
.inputrc
, öffne eine neue Shelle
ist anscheinend ein no-opbind -p
(| grep -i '"E"'
) zeigt"E": self-insert
,"e": self-insert
"A": self-insert
und"a": self-insert
anwesend sind.quelle
Ich bin etwas eingerostet, aber das Einfügen in Terminal funktioniert anders als das Einfügen in ein GUI-Programm: Jedes Zeichen wird als separater Tastenanschlag gesendet und nicht als Kopie aus der Zwischenablage in den App-Puffer. Wenn also das "e" neu zugeordnet wurde, wird es auch in der Paste neu zugeordnet.
Überprüfen Sie die folgenden Stellen:
System Preferences > Keyboard > Shortcuts
~/Library/KeyBindings/KeyBindings.dict
$ defaults read com.apple.Automator NSUserKeyEquivalents
quelle
e
Schlüssel neu zugeordnet wurde.Sie können auch versuchen, das Terminal so einzustellen, dass beim Öffnen eines neuen Fensters ein Texteditor (emacs, vi usw.) geöffnet wird. Beispielsweise können Sie in den Terminal-Einstellungen für "Shell" den Befehl Ausführen wie z
/usr/bin/emacs
. Wenn Sie nicht ein den Einstellungsbereich eintreten können , passiert etwas noch Seltsameres als das, was bisher vorgeschlagen wurde ...Wenn ein neues Terminal-Fenster geöffnet
wird,sollte der Emacs starten, und Sie können versuchen, auf eusw. zu drücken . Ich habe keine Ahnung, was passieren wird, aber wie oben bei @Pierce bin ich gespannt, was möglicherweise vor sich geht.quelle
Überprüfen Sie die Stty-Einstellung und stellen Sie sicher, dass "e" nicht versehentlich als Rücktaste oder Ähnliches festgelegt wurde. Kenne ich schon. Stty something \ e würde es tun Die Empfehlung, .bash * zu deaktivieren / auskommentieren, würde es wahrscheinlich auch aufdecken.
quelle
Ich hatte das gleiche Problem, das durch einen Tippfehler verursacht wurde
/etc/inputrc
:Anstatt von
quelle
Löschen Sie einfach die .inputrc-Datei, sie befindet sich im Stammverzeichnis. (Es ist eine versteckte Datei).
quelle