Ich verwende iTerm2 (Version 3) und bin zufrieden damit. Aber etwas, das schon seit einiger Zeit passiert und wirklich nervig ist, ist, dass der Befehlsverlauf zwischen den Tabs geteilt wird. Führen Sie beispielsweise in Ihrem ersten Tab „command“ foo
und „command“ aus bar
, wechseln Sie dann zu Ihrem zweiten Tab und führen Sie „aus“ aus say Hello
und gehen Sie dann zurück zum ersten Tab. Ich würde gerne und erwarte, dass der Aufwärtspfeil „ bar
und“ dann „ vorschlägt foo
“, aber stattdessen wird „vorgeschlagen“ say Hello
.
Gibt es eine Möglichkeit, dieses Verhalten zu korrigieren?
Antwort1
Wenn Sie zsh verwenden, fügen Sie diese beiden Zeilen ~/.zshrc
nach der Zeile hinzusource $ZSH/oh-my-zsh.sh
unsetopt inc_append_history
unsetopt share_history
Aus zshopping(1) - Linux-Manpage:
INC_APPEND_HISTORY
Diese Option funktioniert wie APPEND_HISTORY, außer dass neue Verlaufszeilen inkrementell zu $HISTFILE hinzugefügt werden (sobald sie eingegeben werden), anstatt zu warten, bis die Shell beendet wird.
GESCHICHTE TEILEN
Diese Option importiert sowohl neue Befehle aus der Verlaufsdatei als auch bewirkt, dass Ihre eingegebenen Befehle an die Verlaufsdatei angehängt werden (letzteres entspricht der Angabe von INC_APPEND_HISTORY).
Der Verfasser des Beitrags hat angedeutet, dass dies eher die Option war, nach der er gesucht hat:
APPEND_HISTORY
Wenn dies festgelegt ist, hängen Zsh-Sitzungen ihre Verlaufsliste an die Verlaufsdatei an, anstatt sie zu ersetzen. Somit werden bei mehreren parallelen Zsh-Sitzungen alle neuen Einträge aus ihren Verlaufslisten in der Reihenfolge, in der sie beendet werden, zur Verlaufsdatei hinzugefügt.
Antwort2
Zusatzinfos zur perfekten Antwort von harrymc.
Dies ist nicht Iterm2, sondern eine Funktion von zsh, die standardmäßig aktiviert wird, wenn Sie verwendenoh mein Gott
(sehen:https://github.com/robbyrussell/oh-my-zsh/blob/master/lib/history.zsh)
Fügen Sie diese also in Ihre .zshrc-Datei ein source $ZSH/oh-my-zsh.sh
(siehe harrymcs Antwort)
unsetopt inc_append_history
unsetopt share_history
Antwort3
Sie können Ihre Umgebungsvariable HISTFILE auf einen eindeutigen Wert festlegen, ich lösche sie jedoch einfach in meinem .bashrcDatei:
export HISTFILE=""
aber ich möchte meinen Verlauf nicht in einer Datei speichern. Durch Aufheben der Einstellung wird der Verlauf einfach im Speicher gespeichert.
Antwort4
Für Bash
Benutzer fügen Sie einfach diese beiden Zeilen in Ihre~/.bashrc
shopt -s histappend
PROMPT_COMMAND="history -a;history -c;history -r;$PROMPT_COMMAND"
Stellen Sie sicher, dass Sie einen neuen Tab öffnen, damit dies wirksam wird