Sudo-Funktion in zsh

Sudo-Funktion in zsh

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_HISTOption 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:

  1. Indem Sie es explizit mit set/ festlegen setopt. 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_HISTAktiviert die Funktion, und das Voranstellen von NO( NO_BANG_HIST) deaktiviert die Funktion. -oSetzt den durch den Namen angegebenen Status der Funktion und +okehrt die Bedeutung um.

  2. Beginnen Sie zshmit der -KBefehlszeilenoption:

    zsh -K
    

    Sie können es auch explizit mit festlegen, zsh +Kaber das kann setoptin der Konfiguration mit überschrieben werden.

  3. Durch Starten zshim Emulationsmodus für entweder shoder ksh:

    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 +Kfunktioniert 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

verwandte Informationen