Emacs:我可以限制缓冲区中的行数

Hi-*_*gel 3 lisp debugging emacs elisp

为了通过Emacs和gdb调试应用程序,调试输出的行数有时可能会快速克服9xxxx.有没有办法迫使Emacs在数量超过例如1000之后删除旧线?

law*_*ist 7

M-x comint-truncate-buffer
Run Code Online (Sandbox Code Playgroud)

此命令将shell缓冲区截断为由变量指定的特定最大行数comint-buffer-maximum-size.以下是每次从子shell获取输出时如何自动执行此操作:

(add-hook 'comint-output-filter-functions 'comint-truncate-buffer)
Run Code Online (Sandbox Code Playgroud)

对于变量comint-buffer-maximum-size,打印输出describe-variable如下:

comint-buffer-maximum-size是一个定义的变量comint.el.它的值是1024

文档:

Comint缓冲区的行的最大大小.如果函数comint-truncate-buffer' is oncomint-output-filter-functions' ,则从顶部截断Comint缓冲区不大于此数字.

您可以自定义此变量.