Wenn ich ein Leerzeichen gefolgt von dem Pipe-Symbol '|'
in der zsh-Befehlszeile eingebe, wird das Leerzeichen von zsh aufgefressen und das Pipe-Symbol direkt vor dem vorherigen Wort platziert. Wie kann ich das verhindern? Ich bin mir nicht sicher über mögliche Stilkonventionen, aber ich mag ein Leerzeichen auf beiden Seiten des Pipe-Symbols für die Lesbarkeit. Ich benutze oh-my-zsh so ziemlich "out of the box".
Lösung
Basierend auf der Antwort von mpy unten habe ich die folgende Lösung verwendet:
Standardmäßig ist ZLE_REMOVE_SUFFIX_CHARS in zsh / ohmyzsh undefiniert. Wenn es undefiniert ist, verhält es sich so, als wäre es:
ZLE_REMOVE_SUFFIX_CHARS=$' \t\n;&|'
Ich habe meinem ~ / .zshrc die folgende Definition hinzugefügt:
ZLE_REMOVE_SUFFIX_CHARS=$' \t\n;&'
(alle außer Pfeife) und Presto, perfekt! Problem weg.
zsh -f
(um das Laden Ihrer Konfiguration zu überspringen). Sie werden feststellen, dass zsh das nicht mehr macht. Dann müssen Sie (höchstwahrscheinlich) in oh-my-zsh graben, um herauszufinden, wie es das verursacht ;-)Antworten:
Ich nehme an, Sie meinen, wenn Sie
TAB
einen Befehl / Dateinamen abschließen, wird automatisch ein Leerzeichen hinzugefügt, aber nach dem Drücken|
verschwindet es wieder. Sonst kann ich diesen Effekt nicht reproduzieren.In diesem Fall sollte die Lösung jedoch so einfach wie möglich sein
Die Erklärung ist ein bisschen knifflig, deshalb zitiere ich einfach
man zshparam
quelle