W zsh
Chcę mieć nieograniczoną historię. Ustawiam HISTSIZE=
, który działa bash
. Teraz importuję starą historię
mv old_history .history
który jest dość duży
wc -l .history
43562 .history
Jeśli teraz zamknę i zacznę od zsh
nowa, zobaczę
wc -l .history
32234 .history
Czy nie mogę mieć nieograniczonej historii zsh
?
zsh
command-history
pfnuesel
źródło
źródło
Odpowiedzi:
Istnieje limit i możliwości twoich maszyn.
Z listy mailingowej ZSH :
Co wyjaśnia rozwiązanie Gentoo:
Historia nie zostanie zapisana bez następującego polecenia:
Aby zapobiec zapisywaniu zduplikowanych wpisów w historii (takich jak ls -l wprowadzanych wiele razy podczas sesji pojedynczej powłoki), możesz ustawić opcję hist_ignore_all_dups:
Przydatna sztuczka, aby zapobiec zapisywaniu poszczególnych wpisów w historii, poprzedzając je przynajmniej jedną spacją.
źródło
50000
, ale to nie rozwiąże mojego problemu.Musisz ustawić oba
HISTSIZE
iSAVEHIST
. Wskazują odpowiednio, ile wierszy historii należy zachować w pamięci i ile wierszy należy zachować w pliku historii.Nie sądzę, aby zsh miał ustawienie, które oznacza „nieskończony”, ale ze wszystkich praktycznych powodów, miliard jest nieskończony, podczas gdy na komputerach 32-bitowych może być reprezentowany przez maszynę.
źródło
Miałem problem z ograniczeniem historii,
10000
dopóki nie zdałem sobie sprawy, że oh-my-zsh ustala swojeHISTSIZE
iSAVEHIST
wartości. TL; DR, upewnij się, że umieściłeś linie na dole twojego.zshrc
.źródło
Problem nie
zsh
dotyczył mojej.zshrc
, ale mojej historii. Było trochę nieparzystych wpisówktóre były zdezorientowane
zsh
i wszystko po tych wpisach zostało obcięte. Nie wiem, jaki znak^@
odpowiada, ani jak te wpisy trafiły do mojej historii, ale usunięcie ich rozwiązało problem.źródło
terminology
avim
.^@
jest\0
znakiem ASCII NUL ( ).