Wrap the history number - setzt die Historienummer zurück, ohne die Historie zu verlieren

347
jeremysprofile

Ich zeige die Verlaufsnummer als Teil meiner Eingabeaufforderung an, z.

{!1123}(j:~)$ ls /some/long/and/hard/to/type/path 

damit ich es später mit machen kann !1123. Meine HISTSIZEund HISTFILESIZEsind beide 200, aber dies verhindert nicht, dass die \!Protokollnummer ( in der Eingabeaufforderung) vierfache Ziffern schlägt, da ich tmux verwende. Ich möchte, dass meine Eingabeaufforderungs- und Verlaufsbefehle kürzer sind. Gibt es eine Möglichkeit, den Verlauf umzuschreiben, so dass die Verlaufsnummer des nächsten Befehls auf eine Zahl gesetzt wird, wenn ich auf eine Nummer treffe, und nur alte Befehle überschrieben werden, wenn ich ihre Verlaufsnummern wiederverwende? Beispiel:

{!1}(j:~)$ ls /first/path ... {!498}(j:~)$ ls /some/path {!499}(j:~)$ ls /some/other/path #at some target number, history number resets {!1}(j:~)$ ls /new/path #but remembers the old commands til they're overwritten {!2}(j:~)$ !498 ls /some/path #and keeps incrementing and overwriting the oldest commands {!3}(j:~)$ !1 ls /new/path 
1
* »Vierfache Ziffern, weil ich Tmux verwende« * Ich bezweifle, dass Tmux das Problem ist. Wenn ich plain bash mit `HISTSIZE = 3` verwende, bekomme ich auch größere History-Einträge. Vielleicht finden Sie in der "Hilfe-Geschichte" etwas Nützliches. Socowi vor 5 Jahren 0
@Socowi, Sie haben Recht, dass tmux nicht das Problem ist, wie lange Sie während einer Sitzung angemeldet bleiben, da die Anzahl unabhängig von HISTSIZE und HISTFILESIZE erhöht wird. Ich meinte nur, dass mit tmux meine Sitzungen im Allgemeinen sehr lang sind. "help history" ist ein Abschnitt, den ich bereits gelesen habe. Ich kann den Verlauf löschen, aber ich kann die Verlaufsnummer nicht zurücksetzen und alte Einträge beibehalten. jeremysprofile vor 5 Jahren 0
Mit `exec bash 'werden die Historiennummern zurückgesetzt, aber auch lokale Variablen gehen verloren. Möchten Sie sich alternativ für eine "Lösung" interessieren, bei der die Historienummer 31415 als 415 angezeigt wird? Das heißt wirklich angezeigt. Sie mussten noch `! 31415` eingeben, um den Verlaufseintrag auszuführen. Socowi vor 5 Jahren 0
@Socowi, ich möchte auch nur die kürzere Version eingeben. Ist es möglich, die Historie irgendwie alias zu nennen, so dass, wenn "! 1123" gültig wäre, "! 123" sich darauf ausweiten würde. Es müsste nicht super erweiterbar sein, dh es handelt sich nur um 4-stellige Historiennummern, nicht um 5+. jeremysprofile vor 5 Jahren 0
Ich habe noch nie gehört, dass es möglich ist zu modifizieren, wie bash Dinge wie "! 123" erweitert. Wahrscheinlich müssten Sie Bash verzweigen, aber dann könnten Sie direkt den Wrapping der Historiennummer implementieren. Socowi vor 5 Jahren 0
@Socowi, Jesus. Das ist zu weit Ah, gut. Danke für Ihre Hilfe. jeremysprofile vor 5 Jahren 0

0 Antworten auf die Frage