Vielleicht liegt das an dem hier beschriebenen Problem ? Wenn ja, scheint das vorgeschlagene Update eine Aktualisierung von zsh nach Version 5.0.5 durchzuführen.
Mehrzeilige Befehle in der Historie geben die erste Zeile nur mit doppeltem Backslash zurück
Ich verwende oh-my-zsh mit der folgenden Verlaufskonfiguration:
setopt appendhistory autocd extendedglob setopt EXTENDED_HISTORY setopt histignoredups sharehistory
Die Historiesuche Ctrl+ Rund die Pfeiltasten sind auf die Standardwerte gesetzt, dh:
% bindkey '^r' "^R" history-incremental-search-backwar
Seit einiger Zeit stehe ich jedoch vor dem Problem, dass beim Durchsuchen der Historie nach Befehlen die erste Zeile des Befehls mit doppeltem Backslash am Ende angezeigt wird, nicht jedoch die anderen Zeilen. Tatsächlich geschieht dies nur, wenn die Verlaufsdatei aktualisiert wird. Wenn der Befehl frisch ist und ich in der gleichen Shell nach ihm suche, werde ich sie richtig abrufen. Wenn ich jedoch die Shell schließe und sie wieder öffne, und versuche, den Befehl aus der Geschichte abzurufen, ich werde ihn wie folgt erhalten:
-> Eingabebefehl:
echo \ "multi-line command"
Ergebnis bei Verwendung der Historiesuche ( bck-i-search: echo
):
Echo \
Weiß jemand, was das verursacht? Die Informationen, die ich hier und anderswo gefunden habe, haben nicht geholfen :(
Als nächstes füge ich einen Auszug aus meiner Geschichte hinzu:
4453* cd place 4454* someCommand -d folder \\ 4455* --opt 1 \\ 4456* -foo1 bar1 -foo2 bar2 -aeps 0 0.01 0.01 >&! output.log & 4457* du -sh 4460* ls * 4461* exit
zsh-Version für die beiden Hosts: 5.0.2 und 5.0.5.
Dann habe ich aufgrund der Syntax einen mehrzeiligen Befehl hinzugefügt:
3723 echo $ZSH_VERSION 3724 for x in 1 2 3; do echo $x \ndone 3725* someCommand -d folder \\
das funktioniert gut. Ein mehrzeiliges Zitat wie in:
echo "lala dquote> dump dquote> dump dquote> ok"
ergebend:
3732 echo "lala\ndump\ndump\nok"
und was auch gut funktioniert.
Dies geschieht nicht auf meinem lokalen Computer (zsh Version 5.0.7), was auch zu mehrzeiligen Befehlen mit \ n anstelle von double \ führt:
15365 echo \\n multi \\n line \\n command
Und auch auf einem anderen Remote-Server (4.3.11):
14133 example -d folder \\n -pp mpp \\n -c mcc \\n -x mxxz \\n -r mrr \\n -e 0 \\n -o out \\n -debug
Auf allen Maschinen verwende ich die gleichen Konfigurationsdateien.
1 Antwort auf die Frage
Verwandte Probleme
-
6
Welche zsh-Funktionen verwenden Sie?
-
5
Transparente Eingabeaufforderung in Vista?
-
4
Verwenden Sie den Windows-Aktenkoffer von der Befehlszeile aus
-
4
Warum sind einige Befehle nicht vorhanden?
-
11
Gibt es eine einfache Möglichkeit, MP3-Dateien zu teilen?
-
2
Wie kann ich OSX Terminal.app dazu bringen, den Vollbildmodus zu öffnen und nicht zu kaskadieren?
-
4
Remote-Ordner unter Linux synchronisieren
-
6
Vollbild-Vista-Eingabeaufforderung oder Ersatz
-
6
Guter PowerShell-Leitfaden, der durch fortgeschrittene Verwendung Einstieg leistet
-
3
Planen Sie einen Job von der Windows-Befehlszeile aus?