【问题标题】:How to clear the Emacs buffer history?如何清除 Emacs 缓冲区历史记录?
【发布时间】:2013-01-04 05:50:13
【问题描述】:

当我按下C-x b (ido-switch-buffer) 时,我得到了很多我不想看到的缓冲区。我想清除缓冲区历史记录。

我尝试评估这个表达式(使用M-x eval-buffer):

(setq ido-buffer-history '())

并且生效了;我可以说出来,因为我用C-h v ido-buffer-history 查看了变量。但是,当我按下 C-x b 时,更改并没有反映在 minibuffer 中。

我还应该做什么?还有其他我应该清除的变量吗?

更新:我看到的“额外”缓冲区处于活动状态。有趣的是,C-x C-b (ido-fallback-command) 完全符合我的预期。这是我感兴趣的缓冲区历史记录。(有关更多上下文,请参阅 buffer-name-historyido-buffer-history 变量。)

注意:也许提一下我正在使用安装了ido-ubiquitous 的 emacs-starter-kit 会有所帮助。

【问题讨论】:

    标签: emacs


    【解决方案1】:

    将以下内容添加到您的 init.el:(setq ido-use-virtual-buffers nil)


    为了后代:

    这些是您会话中的所有活动缓冲区。您可以使用以下命令清理它们:

    • M-x clean-buffer-list 将关闭您一段时间未使用的所有干净缓冲区
    • M-x kill-some-buffers 将访问每个缓冲区并询问您是否要关闭它
    • M-x kill-matching-buffers 将提示输入缓冲区名称的正则表达式,您可以将其留空

    编辑: 您还可以使用C-x C-b 获得无聊的旧缓冲区菜单。在此菜单中,您可以按住d,直到它标记每个缓冲区为删除,然后按x 提交。

    【讨论】:

    • M-x clean-buffer-list 不是为我做的。 C-x b 仍然显示未打开的缓冲区,例如ido-ubiquitous-autoloads.el
    • 好的,还有一些其他的命令你可以使用,查看更新的答案。
    • 您的回答提供了有关如何关闭缓冲区的各种建议,但这不是我所需要的。我的所有(或几乎所有)缓冲区都已关闭。我的缓冲区名称历史记录包含未打开的缓冲区——这就是这里的问题。
    • 我也在使用ido-switch-buffer,这些命令对我有用。您的 init.el 中有什么可疑之处吗?
    【解决方案2】:

    感谢 Chris,让我了解了 ido 的虚拟缓冲区。我不想完全禁用ido-use-virtual-buffers。我想根据需要清除历史记录;这些命令实现了这个目标:

    (setq ido-virtual-buffers '())
    (setq recentf-list '())
    

    (请注意,清除ido-virtual-buffers 是不够的——recentf-list 也必须清除。)

    【讨论】:

      【解决方案3】:

      我在 emacswiki 上找到了 this 条目。

      存储您所指的缓冲区历史记录的变量是buffer-name-history

      如果您运行M-x describe-variable RET buffer-name-history RET,您将看到所有不再存在的死缓冲区。 wiki 建议创建一个钩子,当你杀死一个缓冲区时,它会从列表中删除缓冲区名称。

      我刚刚做了:M-x eval-expression RET (setq buffer-name-history '()) RET

      这似乎奏效了。下次我运行 C-x b 时,我只循环了我的 real 缓冲区。

      也就是说,将变量设置为 nil 似乎会完全禁用该功能(一旦打开更多缓冲区,该变量似乎不会重新填充)。

      【讨论】:

        猜你喜欢
        • 2018-07-31
        • 1970-01-01
        • 2015-01-09
        • 2010-11-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多