Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!
Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.
Czy orientuje się może ktoś jak sprawić, by te same polecenia nie trafiały do pliku historii shell'a ZSH? Technicznie rzecz biorąc, obecnie mam taką konfigurację, że jeśli to samo polecenie zostanie wpisane parę razy pod rząd, to tylko jedno z nich jest rejestrowane. Jeśli zacznę wpisywać dwa rózne polecenia na zmianę, to każde z nich zostanie zapisane w historii i w ten sposób plik będzie miał całą masę zduplikowanych poleceń. Nie ma jakiejś opcji by te same polecenia (znak w znak) były zapisywane w historii tylko raz?
Offline
Rzuć okiem tutaj:
https://github.com/mattjj/my-oh-my-zsh/blob/master/history.zsh
Pozdro
Ostatnio edytowany przez Jacekalex (2018-12-05 16:30:04)
Offline
No właśnie coś mi to nie działa. Bo niby mam:
setopt HIST_IGNORE_ALL_DUPS # Delete old recorded entry if new entry is a duplicate.
Ale nie usuwa tych wcześniejszych.
Ostatnio edytowany przez morfik (2018-12-05 16:49:54)
Offline
Zmienne zazwyczaj nie generują skutków wcześniejszych, przed ich zdefiniowaniem.
Spróbuj:
setopt HIST_SAVE_NO_DUPS
Offline
setopt append_history # append history
setopt hist_ignore_all_dups # ignore duplicates in history
setopt hist_ignore_space # do not save commands with leading space
setopt hist_no_functions # do not save functions in history
setopt hist_no_store # do not save history command in history
To są wszystkie moje ustawienia historii i duplikatów nie posiadam.
Offline
Chyba już wiem o co chodzi.
Generalnie to winny jest najwyraźniej timestamp w pliku historii — za niego odpowiada extended_history . Do tego dochodzi share_history , który zapisuje każde wykonane polecenie od razu do pliku bez czekania na zamknięcie terminala, ale on wymusza extended_history. Z kolei bez share_history wydawane polecenia w jednym okienku nie są widoczne w historii w drugim okienku, co trochę ssie. xD Jeśli się nie używa share_history to trzeba jechać na append_history
Jak plik historii nie ma timestampu, to duplikaty są usuwane jak tylko się wprowadzi jakieś polecenie, które było w historii i wyjdzie się z terminala. Niemniej jednak, jak ma się dwa różne terminale odpalone i w obu sesjach wyda się takie samo polecenie, to wtedy trafią do historii duplikaty ale wciąż mogą zostać one usunięte, gdy przy pojedynczej sesji się wyda zduplikowane polecenie.
Póki co plik historii skurczył się z 1M do 500K. Więc jakoś będę musiał przywyknąć do tej nowej konfiguracji. xD
Offline