Debugging Emacs:我可以限制缓冲区中的行数吗
对于通过Emacs和gdb调试应用程序,调试输出的行数有时可能会很快超过9xxxx。有没有办法在数量超过(例如1000)后强制Emacs删除旧线路Debugging Emacs:我可以限制缓冲区中的行数吗,debugging,emacs,lisp,elisp,Debugging,Emacs,Lisp,Elisp,对于通过Emacs和gdb调试应用程序,调试输出的行数有时可能会很快超过9xxxx。有没有办法在数量超过(例如1000)后强制Emacs删除旧线路 M-x comint-truncate-buffer 此命令将shell缓冲区截断为某个最大行数,该行数由变量comint buffer maximum size指定。下面是每次从子shell获得输出时自动执行此操作的方法: (add-hook 'comint-output-filter-functions 'comint-truncate-buf
M-x comint-truncate-buffer
此命令将shell缓冲区截断为某个最大行数,该行数由变量comint buffer maximum size
指定。下面是每次从子shell获得输出时自动执行此操作的方法:
(add-hook 'comint-output-filter-functions 'comint-truncate-buffer)
对于变量
comint buffer maximum size
,从Descripte variable
打印的结果如下:
comint缓冲区最大大小
是在comint.el
中定义的变量。它的值是1024
文件:
Comint缓冲区的最大行大小。如果函数Comint truncate buffer'打开
Comint output filter functions',则Comint buffers将从顶部截断,使其不大于该数字
您可以自定义此变量。是否有类似于
gdb debug log max
的变量?或者可能与*Messages*
缓冲区等效,例如message log max
?@lawlist是,第一个设置为128,第二个设置为1000。虽然我正在使用shell
模式,因为gud gdb
和gdb
都有问题。不管怎样,我刚刚被测试过:即使在gdb
模式下,在数字绕过128或1000之后,行也不会被删除。比如变量comint buffer maximum size
和函数comint truncate buffer
:我只是猜测,但这是一般的想法。还有其他shell模式类型的主要模式,变量可能会根据模式的不同而有所不同——例如,ansi term可能会使用类似term buffer maximum size
@lawlist aha!您可以发布一个答案:设置钩子(添加钩子'comint output filter functions'comint truncate buffer)
完成这项工作。comint buffer maximum size
变量管理的行数,它是您设置的数字加上1(我假设⁺由于一个错误)。