Jak można to zrobić, aby każde wprowadzone polecenie było widoczne w historii każdego otwartego terminalu?
Gdy otwartych jest wiele terminali, historia nie jest współdzielona, tzn. To, co wpisałeś w historii jednego terminala, nie pojawia się w innym. Pomyśl o alternatywie dla Basha PROMPT_COMMAND="history -a"
(która zapisuje historię przed wyświetleniem monitu).
command-line
history
zsh
MJB
źródło
źródło
Odpowiedzi:
Miałyby zastosowanie następujące opcje:
Aby zapisać każde polecenie przed jego wykonaniem (różni się to od historii bash - rozwiązanie):
Aby odczytać plik historii za każdym razem przywoływana jest historia, a także funkcjonalność
inc_append_history
:Można je ustawić w
.zshrc
pliku.Powiązane z bash:
źródło
setopt share_history
jest tym, co osiągnie pożądany rezultat. @MJB czy zechciałbyś edytować swoją odpowiedź, aby usunąć wzmiankę osetopt inc_append_history
? Ukrywa rzeczywistą odpowiedź.setopt | grep hist
dostanieszincappendhistory
isharehistory
.Jeśli użyjesz niesamowitego OhMyZSH Robby'ego Russella, zajmie się tym i jeszcze więcej.
Zobacz https://github.com/robbyrussell/oh-my-zsh/blob/master/lib/history.zsh
To obejmuje
setopt inc_append_history
.źródło