Die Tab-Vervollständigung in zsh führt zu doppelten Zeichen

Die Tab-Vervollständigung in zsh führt zu doppelten Zeichen

Wenn Sie bei einer relativ neuen Arch-Installation die Tab-Vervollständigung in zsh mit ohmyzsh verwenden, duplizieren sich die ersten beiden Zeichen und können nicht mehr gelöscht werden.

Ich tippe beispielsweise yay -S terminatound drücke dann die Tabulatortaste, um die automatische Vervollständigung bis zum Abschlusszeichen durchzuführen, richtig? Das funktioniert einwandfrei und ich kann wie üblich durch die Ergebnisse tabben, aber der Zeilenanfang wird nicht angezeigt, yay -S term...sondernyayay -S term...

Als ich zur Korrektur des Fehlers die Rücktaste drückte, konnte ich nicht über das hinaus löschen , sodass ganz am Anfang yayein übrig blieb, das ich nicht entfernen konnte.ya

Dies gilt nur für die einzelne Zeile und hat tatsächlich keine Auswirkungen. Der Befehl wird weiterhin ordnungsgemäß ausgeführt, auch mit den beiden Zeichen, die nicht dazugehören.

Ich habe andere Emulatoren ausprobiert, aber das Problem besteht weiterhin, sogar in einem Basis-TTY.

Wenn Sie die Eingabetaste oder Strg+C drücken, um zur nächsten Zeile zu wechseln, wird diese neue Zeile zurückgesetzt, die alte Zeile bleibt jedoch mit ihren fehlenden Zeichen bestehen.

um es klarzustellen: dies geschieht bei allen Befehlen mit Tab-Vervollständigung, nicht nur bei „Yay“.

Antwort1

Dies bedeutet, dass eine Art Fehler gedruckt wurde, dann aber die Befehlszeile über dem Fehler neu gezeichnet wurde, wenn auch aufgrund der in der Fehlermeldung gedruckten Zeichen an einer leicht falschen Stelle.

Der Grund, warum Sie das erste nicht löschen können, yaist, dass es Teil der alten Befehlszeile ist, die überschrieben wurde. Es ist nicht wirklich Teil Ihrer neuen Befehlszeile, Sie können es also nicht bearbeiten. Mit anderen Worten, es gibt Zeichen, die in Ihrem Terminal gedruckt werden, die nicht gelöscht werden konnten, und Ihre Shell weiß nichts davon.

Um diesem Fehler auf den Grund zu gehen,

set -vx

Versuchen Sie dann die gleiche Vervollständigung erneut und prüfen Sie, ob Sie irgendwo in der Ausgabe eine Fehlermeldung finden.

Antwort2

Ich hatte das gleiche Problem. Es hing tatsächlich mit den Gebietsschemaeinstellungen zusammen, wie oben erwähnt.

Ich habe es gelöst, indem ich das Gebietsschema neu generiert habe.

sudo echo en_US.UTF-8 UTF-8 > /etc/locale.gen
sudo locale-gen

Nach dem Neustart funktionierte es normal.

Antwort3

Ich hatte ein ähnliches Problem, das sich ähnlich manifestierte. Ich habe das Problem auf den Wert von zurückgeführt LC_ALL. Ich habe den Export LC_ALL(und Freunde) als gestoppt Cund exportiert LANG=en_US.UTF-8und das Problem war behoben.

Ich habe das Problem in Zsh, in tmux, inein bestimmtes Oh-mein-Zsh-Thema. ( robbeyrussellwar, glaube ich, der erste Ersteller von oh-my-zsh, daher führen die Brotkrumen jetzt zur „offiziellen“ GitHub-Organisation)

Siehe auch:

verwandte Informationen