弄清楚elisp中的函数打开了哪些缓冲区?

时间:2009-09-29 01:19:14

标签: emacs elisp

我正在尝试编写一个调用函数(icalendar-import-file)的插件,每次调用它时都会产生1到3个缓冲区之间打开的令人讨厌的副作用,有时我想把它称为一大堆次。

我甚至找不到一个能够在没有弹出新缓冲区的情况下列出缓冲区的函数,这有点令人沮丧。

据我所知,defun(ical...)没有返回任何有用的东西,所以对我来说两个明显的解决方案是:(1)在运行之前将变量设置为缓冲区列表函数,然后扫描函数退出后存在的缓冲区并删除新的缓冲区(类似于save-excursion,但对于缓冲区)或(2)以某种方式抑制创建。看起来ical...非常依赖于此,所以我不确定这是否可行。

2 个答案:

答案 0 :(得分:3)

您在寻找这个功能:

  

buffer-list是一个内置函数   `C源代码'。

     

(缓冲列表和可选FRAME)

     

返回所有现有直播的列表   缓冲区。如果是可选的arg FRAME   一帧,我们返回缓冲区列表   该框架的正确顺序:   缓冲区在FRAME的“缓冲区列表”框架中   参数先来,然后是   其余的缓冲区。

答案 1 :(得分:0)

如果您知道哪个函数正在创建不需要的缓冲区,并了解删除它们的效果,您可以随时建议它们(使用建议后)在问题根源处删除不需要的缓冲区。我认为这比仅仅在函数完成后删除任何新缓冲区更安全。