Ich habe kürzlich angefangen, Zsh für einen Teil der in der Shell integrierten Unterstützung für meinen Git-Status usw. zu verwenden.
Wenn ich eintippe:
ruby -v
Um die von mir ausgeführte Ruby-Version zu bestätigen, fragt Zsh, ob ich den Befehl in _ruby ändern möchte. Nachdem ich an der Eingabeaufforderung Nein gesagt habe und der Befehl wie erwartet ausgeführt wurde, erhalte ich weiterhin die Frage an der Eingabeaufforderung, nachdem ich bestätigt habe, dass mein Befehl korrekt ist.
Ich gehe davon aus, dass es eine Abschlussdatei oder ähnliches gibt.
Vielen Dank
Aktualisieren:
Die Shell versucht nicht mehr, _ruby zu vervollständigen. Sie reagiert nicht mehr, nachdem sie die Shell einige Male geschlossen hat.
Ich habe mehrmals versucht, die Datei zu bereinigen, aber es gibt eine "opts" -Variable, die 50 oder mehr Zeilen lang ist und alle Zeilen zusammen ausgeführt werden, einige Zeilen mehr als 150 Zeichen. Vielleicht könnte ich Ihnen einen Anhang per E-Mail senden, wenn Sie ihn noch sehen möchten. Ich entschuldige mich aufrichtig für den unordentlichen Beitrag.
~/.zshrc
? Tut es das, wenn Sie versuchen, ein einfaches Ruby-CLI-Skript auszuführen (z. B.ruby -e 'print "hi\n"'
)?/usr/share/zsh/functions/Completion/Unix/_ruby
Veröffentlichen Sie Ihre Datei und wir können sie mit einer bekanntermaßen guten Version vergleichen._ruby
im Arbeitsverzeichnis? Ich habe ein Git-Repository mit einem Ordner namensstats
und jedes Malgit status
, wenn ich tippe, möchte zsh es "korrigieren"git stats
. Für mich ist es oh-my-zsh, das diecorrect
Option aktiviert hat , ich fange an, das Ding zu hassen.Antworten:
Dies ist die durch die
correct
Option aktivierte Befehlsautokorrektur . Es hat nichts mit Fertigstellung zu tun. Sie sehen,_ruby
weil zsh denkt, dass es keinenruby
Befehl gibt und er_ruby
als die nächste vorhandene Übereinstimmung anbietet .Wenn Sie gerade installiert haben
ruby
, wurde möglicherweisezsh
die Liste der verfügbaren Befehle früher gespeichert, und es wird nicht immer versucht, festzustellen, ob der Befehl dazwischen angezeigt wurde. Führen Sie in diesem Fall aushash -rf
. Zukünftige zsh-Sitzungen haben dieses Problem nicht, da derruby
Befehl bereits beim Start vorhanden war.Wenn Sie Ihre ändern
PATH
, vergisst zsh manchmal einige Hash-Befehle. Die Optionhash_listall
hilft dagegen. Wie oben, wenn Sie zsh zwingen können, seinen Befehlscache mit zu aktualisierenhash -rf
.quelle
hash_listall
nicht gefunden. Allerdings wurdehash -rf
mein Problem mit zsh behoben, das ständig etwas automatisch korrigieren wollte, das ich kürzlich installiert hatte.git lg
dem zsh glaubt, dass es sein solltegit log
. Es gibt einen Grund, warum ich es nenne,lg
und das liegt daran, dass es ähnlich istlog
, weil seine Funktion ähnlich ist! Wie kann ich dieses Problem beheben? Ich möchte wirklich nicht die Angewohnheit entwickeln, zweimal die Eingabetaste zu drücken.Sie könnten einen Alias erstellen:
alias ruby='nocorrect ruby'
Es ist das, was ich getan habe, als zsh mich immer wieder gefragt hat, ob ich es beim Tippen gemeint
.meteor
habe,meteor
weil die automatische Korrektur von Zeit zu Zeit immer noch nützlich ist.quelle
Ich finde, dass die Autokorrektur manchmal nervig werden kann. Also mache ich in meinem ~ / .zshrc,
quelle
Vor einiger Zeit habe ich nach einem Update die automatische Befehlskorrektur aktiviert, die ich nicht möchte. Wenn Ihnen dasselbe passiert ist und Sie es zurücksetzen möchten, müssen Sie es in der Datei ~ / .zshrc wie folgt erstellen:
# Uncomment the following line to enable command auto-correction.
ENABLE_CORRECTION="false"
oder kommentieren Sie es wie unten:
# Uncomment the following line to enable command auto-correction.
# ENABLE_CORRECTION="true"
quelle
Nur eine Anmerkung, auf meinem zsh (Version 5.7.1 unter macOS) hat DISABLE_CORRECTION nicht funktioniert.
Ich habe in meiner .zshrc-Datei die folgenden zwei Zeilen gesehen, die ich dann auskommentiert habe
Das hat es für mich getan.
quelle
Ich hatte das gleiche Problem, auch wenn der Befehl nicht installiert ist.
Ich kann es mit der
CORRECT_IGNORE
Variablen in meinem lösen.zshrc
Ich hoffe, es hilft Ihnen oder jemandem bei diesem Problem
quelle