私は現在、構成に以下を追加することにより、20,000行でバッファーを切り捨てます。
(setq eshell-buffer-maximum-lines 20000)
;; automatically truncate buffer after output
(add-to-list 'eshell-output-filter-functions 'eshell-truncate-buffer)
これは20,000行未満でうまく機能し、バッファーが20,000行に達すると、すべての行で切り捨てられます(そのため、バッファーは常に20,001行に留まります)。ただし、バッファーが20,000行に達すると、後続の各行の印刷に時間がかかり、emacsのCPUがしばらくの間100%に留まります。
バッファの切り捨てのパフォーマンスを向上させる方法はありますか?おそらく、追加された100行ごとにしか切り捨てられませんか?私は本当にそれがために必要みたいではありません正確に 、私はちょうどバッファが無限に成長する必要はありません20,000行。
3
アイドル時間後に切り捨てませんか?
—
PythonNut 2015
eshell-truncate-buffer
出力が生成されるたびに実行されるため、すべての行で切り捨てられます。出力の生成とは無関係に切り捨てを行う方が理にかなっています。@PythonNutが提案するように、タイムアウト後の切り捨ての方が合理的です。