
Ich verwende zsh sowohl auf meiner Linux-Box als auch auf meinem MAC. Allerdings habe ich in beiden Umgebungen ein „Problem“.
Wenn ich " !! " eingebe, funktioniert es in zsh nicht, in bash jedoch schon. Außerdem ist es mit "sudo !!" wirklich nützlich. Wie kann ich es mit zsh zum Laufen bringen? Muss ich in meiner .zshrc etwas aliasen?
Antwort1
Die BANG_HIST
Option ist deaktiviert für zsh
:
BANG_HIST(+K) <C> <Z>
Führen Sie eine Textverlaufserweiterung durch,csh-Stil, wobei das Zeichen `!' speziell.
Dies kann auf eine der drei folgenden Arten geschehen:
Indem Sie es explizit mit
set
/ festlegensetopt
. Irgendwo in Ihrer Shell-Konfiguration befindet sich eine Zeile wie eine dieser:setopt NO_BANG_HIST setopt -o NoBangHist setopt +o banghist set -o nobanghist set +o BANG_hist
Die Groß- und Kleinschreibung spielt keine Rolle und
_
wird im Optionsnamen ignoriert.BANG_HIST
Aktiviert die Funktion, und das Voranstellen vonNO
(NO_BANG_HIST
) deaktiviert die Funktion.-o
Setzt den durch den Namen angegebenen Status der Funktion und+o
kehrt die Bedeutung um.Beginnen Sie
zsh
mit der-K
Befehlszeilenoption:zsh -K
Sie können es auch explizit mit festlegen,
zsh +K
aber das kannsetopt
in der Konfiguration mit überschrieben werden.Durch Starten
zsh
im Emulationsmodus für entwedersh
oderksh
:ln -s /bin/zsh /usr/local/bin/ksh /usr/local/bin/ksh
In diesem Fall kann die Funktion auch später mit eingestellt werden
setopt
, jedoch nicht per Kommandozeilenoption (/usr/local/bin/ksh +K
funktioniert nicht).
Antwort2
Mein zsh hat!!
Ich habe zsh jetzt installiert und !!
es funktioniert so, wie es in Bash funktioniert.
Vielleicht müssen Sie es aktualisieren?
Meine Version ist5.0.2-3ubuntu6
Aber wenn Ihr Zsh es nicht hat:
Wie beantwortetHierSie müssen Ihrer Datei Folgendes hinzufügen .zshrc
:
alias ii='$(fc -ln -1)'
Antwort3
Ok. Es scheint, dass ich eine alte „set opt“-Option in meiner .zshrc hatte, die das Problem verursachte.
Ich habe es herausgefunden, indem ich jedes einzelne Element in meiner .zshrc getestet habe. Zum Glück war es nicht die letzte Option.
Ich werde später testen, welche konkrete Option ich ändern oder entfernen muss.
Grüße