Ich versuche, die Historie in tcsh nach jedem eingegebenen Befehl zu speichern, anstatt sie direkt nach dem Befehl "exit" zu speichern. Das liegt daran, dass ich normalerweise ungefähr 10 Tabs gleichzeitig öffne und danach schließe ich einfach das Terminalfenster, anstatt "Exit" in jedes Tab zu tippen. Das Ergebnis ist, dass der Verlauf nur für die letzte Registerkarte gespeichert wird. Diese Lösung funktioniert nicht, wenn ich das Terminalfenster schließe: https://stackoverflow.com/a/3577709/2773143.tcsh - Geschichte direkt nach dem Befehl speichern
Da ich keine Lösung gefunden habe, nur mit History-Befehlen, habe ich versucht, es auf andere Weise zu lösen: echo jeden Befehl auf ~/.tcsh_history direkt und Einstellung set histfile= ~/.tcsh_history
in der Datei .tcshrc
. Allerdings habe ich auch keinen Weg gefunden, dies zu tun. Ich dachte über einen Alias in .alias
an alle Befehle, etwas wie (mit vielen anderen Versionen), aber es hat nicht funktioniert. Ich habe herausgefunden, wie man das funktioniert, indem man jedem Befehl einen anderen Alias gibt, aber es ist etwas hässlich.
zum Beispiel:
alias cd 'cd \!*; ~/saveHist.tcsh \!:0 \!*'
alias grep 'grep \!*; ~/saveHist.tcsh \!:0 \!*'
(etc)
und in der ~/saveHist.tcsh Datei:
#!/bin/tcsh -f
echo "$argv" >> ~/.tcsh_history
aber natürlich diese etwas hässlich ist und auf diese Weise werden einige Befehle geschrieben werden zweimal in der ~/.tcsh_history nach dem Schließen des Fensters.
Irgendwelche Ideen?
Hmm. Es scheint, dass Sie etwas wie ein 'history -M 'in einer Art Pre-Command-Alias benötigen würden. (ungetestet) –
'alias precmd 'history -M' scheint zu funktionieren, aber es spielt Chaos mit den Befehlsverlaufszahlen. –