In zsh
möchte ich unbegrenzte Geschichte haben. Ich stelle ein HISTSIZE=
, was in funktioniert bash
. Jetzt importiere ich eine alte Geschichte
mv old_history .history
Das ist ziemlich groß
wc -l .history
43562 .history
Wenn ich jetzt schließe und von vorne anfange, zsh
verstehe ich
wc -l .history
32234 .history
Kann ich nicht unbegrenzt Geschichte haben zsh
?
zsh
command-history
pfnuesel
quelle
quelle
Antworten:
Es gibt die Grenzen und Möglichkeiten Ihrer Maschinen.
Aus der ZSH-Mailingliste :
Welche erklären die Gentoo-Lösung:
Der Verlauf wird ohne den folgenden Befehl nicht gespeichert:
Um zu verhindern, dass der Verlauf doppelte Einträge aufzeichnet (wie z. B. ls -l, das während einer einzelnen Shell-Sitzung mehrfach eingegeben wurde), können Sie die Option hist_ignore_all_dups festlegen:
Ein nützlicher Trick, um zu verhindern, dass bestimmte Einträge in einem Verlauf aufgezeichnet werden, indem ihnen mindestens ein Leerzeichen vorangestellt wird.
quelle
50000
, aber das wird mein Problem nicht beheben.Sie müssen beide
HISTSIZE
und einstellenSAVEHIST
. Sie geben an, wie viele Zeilen des Verlaufs im Speicher bzw. wie viele Zeilen in der Verlaufsdatei gespeichert werden sollen.Ich glaube nicht, dass zsh eine Einstellung hat, die "unendlich" bedeutet, aber praktisch ist eine Milliarde unendlich, während sie auf 32-Bit-Computern maschinenrepräsentierbar bleibt.
quelle
Ich hatte ein Problem mit der Geschichte an einer Kappe bedeckt ist ,
10000
bis ich merkte , oh-my-zsh seine eigene einstellteHISTSIZE
undSAVEHIST
Werte. TL; DR, stellen Sie sicher, dass die Zeilen am unteren Rand Ihrer.zshrc
.quelle
Das Problem lag nicht bei
zsh
oder bei mir.zshrc
, sondern bei meiner Geschichte. Es gab einige seltsame Einträge wiedas verwirrt
zsh
und alles nach diesen Einträgen wurde abgeschnitten. Ich weiß nicht, welchem Charakter er^@
entspricht oder wie diese Einträge in meinem Verlauf gelandet sind, aber das Entfernen hat das Problem behoben.quelle
terminology
undvim
.^@
ist das ASCII NUL (\0
) Zeichen.