Attualmente troncare i buffer a 20.000 righe aggiungendo quanto segue alla mia configurazione:
(setq eshell-buffer-maximum-lines 20000)
;; automatically truncate buffer after output
(add-to-list 'eshell-output-filter-functions 'eshell-truncate-buffer)
Funziona benissimo per <20.000 righe e una volta che il buffer raggiunge le 20.000 righe, viene troncato su ogni riga (quindi rimane a 20.001 righe per sempre). Tuttavia, quando il buffer raggiunge 20.000 righe, ogni riga successiva impiega molto più tempo per essere stampata e fa sì che la CPU di emacs rimanga al 100% per un bel po '.
C'è un modo per migliorare le prestazioni del troncamento del buffer? Forse troncando solo ogni 100 righe aggiunte? Non è che ho davvero bisogno che sia esattamente 20.000 righe, non voglio che il buffer cresca all'infinito.
eshell-truncate-buffer
ogni volta che viene prodotto un output. Potrebbe essere più sensato rendere il troncamento indipendente dalla produzione di output. Come @PythonNut suggerisce che il troncamento dopo il timeout sembra più ragionevole.