![Deaktivieren Sie ? und []-Globbing in zsh vollständig](https://rvso.com/image/1638102/Deaktivieren%20Sie%20%3F%20und%20%5B%5D-Globbing%20in%20zsh%20vollst%C3%A4ndig.png)
zsh fügt gegenüber bash eine zusätzliche Globbing-Logik hinzu:
$ zsh
$ echo foo[]
zsh: no matches found: foo[]
$ echo bar?
zsh: no matches found: bar?
$ bash
$ echo f[]
f[]
$ echo bar?
bar?
Keines davon ist für mich nützlich und macht das Kopieren/Eingeben von URLs und anderen Dingen lästig.
Ich würde dies gerne vollständig deaktivieren, habe aber noch keine Möglichkeit dazu gefunden.
Es gibt einige unvollkommene Lösungen:
setopt NO_NOMATCH
Das funktioniert meistens, es sei denn, Ihr Glob versehentlichtutÜbereinstimmung, wie:
$ echo README.m?
README.md
- Anführungszeichen hinzufügen
Dies funktioniert, funktioniert jedoch nicht beim Kopieren und Einfügen von Snippets online und fügt einen zusätzlichen Schritt hinzu, den ich beim Eintippen im Hinterkopf behalten muss.
url-quote-magic
Zum automatischen Verlassen verwenden
Dies verunreinigt die CLI/den Verlauf und funktioniert nur zum Einfügen
Antwort1
?
ist auch in Bash ein PlatzhalterDer Unterschied, den Sie sehen, entsteht, weil in Zsh eine fehlgeschlagene Übereinstimmung zu einem Fehler führt, während sie in Bash stillschweigend ignoriert wird.
~/.zshrc
Um das Bash-Verhalten in Zsh zu erhalten, fügen Sie Ihrer Datei Folgendes hinzu :
unsetopt NOMATCH
Ich würde jedoch eigentlich empfehlennichtausschalten. Fehler stillschweigend zu ignorieren ist keine gute Sache und kann bei destruktiven Operationen sogar gefährlich sein.
Weitere Informationen zu dieser Shell-Option finden Sie unterhttp://zsh.sourceforge.net/Doc/Release/Options.html