kann den ZSH-Verlauf unter OSX 10.8.5 nicht finden

kann den ZSH-Verlauf unter OSX 10.8.5 nicht finden

Wenn ich mich bei der Terminal-App unter OSX anmelde, ist meine Standard-Shell /bin/bash. Durch Eingabe echo $HISTFILEwerde ich auf weitergeleitet /Users/monkeybrain/.bash_historyund head $(echo $HISTFILE)es wird mir angezeigt, dass die Datei Verlaufseinträge enthält.

Wenn ich dann eingebe, zshum die Shell zu wechseln, passieren ein paar seltsame Dinge. Erstens, obwohl sich meine Eingabeaufforderung ändert (so dass es aussieht, als wäre ich in der neuen Shell), $SHELLzeigt meine Umgebungsvariable immer noch auf /bin/bash. Die $HISTFILEVariable ist jetzt leer und es gibt keine Datei wie ~/.zsh_history. Außerdem kann ich nicht Ctrl-Aoder verwenden Ctrl-E, um mich durch die Befehlszeile zu bewegen.

Was passiert hier?

Vielen Dank,

MB

Antwort1

  • Die SHELLUmgebungsvariable wird normalerweise nicht von der Shell geändert. Sie enthält normalerweise den vollständigen Pfad zur Login-Shell des aktuellen Benutzers.nichtdie aktuell ausgeführte Shell. In den meisten Fällen SHELLsollte dieser Wert vor dem Start einer Shell festgelegt werden. zshÄndert den Wert nicht SHELLund bashsetzt ihn auf die Login-Shell zurück, wenn SHELLer nicht festgelegt war.

  • Standardmäßig HISTFILEist es nicht gesetzt zsh. Wenn Sie den Verlauf speichern möchten, müssen Sie ihn auf die Datei setzen, die Sie dafür verwenden möchten:

    HISTFILE="${HOME}/.zsh_history"
    

    Sie müssen auch SAVEHISTpositive Ganzzahlen angeben, um anzugeben, zshwie viele Zeilen im gespeichert werden sollen HISTFILE. Der Standardwert ist 0(DankeAffenhirnfür den Hinweis). Sie möchten wahrscheinlich auch erhöhen HISTSIZE, was angibt, wie viele Verlaufszeilen in der Shell-Sitzung verfügbar sind. Der Standardwert ist nur 30. Beispiel:

    HISTSIZE=2000
    SAVEHIST=2000
    

    Dies geschieht normalerweise in der ~/.zshrcKonfigurationsdatei.

  • zshversucht, Ihre Tastenbelegungseinstellungen zu erraten, indem die Umgebungsvariablen EDITORund überprüft werden VISUAL. Wenn eine der Variablen die Zeichenfolge „vi“ enthält, wird der Eingabemodus zshverwendet . Weder + noch + sind in diesem Modus standardmäßig gebunden. Wenn Sie den Eingabemodus (die Standardeinstellung in ) verwenden möchten, müssen Sie nur ausführenviinsCtrlACtrlEemacsbash

    bindkey -e
    

    Dies kann auch in~/.zshrc

zshAlles in allem klingt es so, als ob Sie mit der Standardkonfiguration arbeiten . Wenn ~/.zshrcnoch keine vorhanden ist, können Sie diese einfach erstellen und die erforderlichen Einstellungen hinzufügen.

verwandte Informationen