【问题标题】:How do I count the number of open buffers / files in Emacs?如何计算 Emacs 中打开的缓冲区/文件的数量?
【发布时间】:2023-03-31 12:51:01
【问题描述】:

有时,我在 Emacs 中想按 C-x 或 C-c 时不小心按了 C-x C-c。当然,这会在没有确认的情况下关闭所有打开的帧和缓冲区。我知道我可以让 Emacs 提示“你确定要退出吗?”,但我不想一直这样做,这会很烦人。我只是希望它在打开的文件(或缓冲区)超过 N 个时这样做。

所以我想将 C-x C-c 绑定到一个函数,如下所示:

(if (< number of open buffers n)
    (save-buffers-kill-emacs)
    (are-you-sure))

但我不知道如何获取打开缓冲区的数量(或打开的帧数,或打开的文件数等)。

【问题讨论】:

    标签: emacs lisp


    【解决方案1】:

    这是我用的:

    (defun count-buffers (&optional display-anyway)
      "Display or return the number of buffers."
      (interactive)
      (let ((buf-count (length (buffer-list))))
        (if (or (interactive-p) display-anyway)
        (message "%d buffers in this Emacs" buf-count)) buf-count))
    

    我偷了它,但不记得从哪里偷来的。来自John Sturdy,听起来很迷人;可从his website 获得。

    【讨论】:

      【解决方案2】:

      另外,您可以考虑使用桌面模式,它会在您再次启动 Emacs 时自动恢复您的缓冲区。只需添加

      (desktop-save-mode 1)
      

      到您的.emacs。 请参阅GNU Emacs manualEmacswiki

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-02-26
        • 1970-01-01
        • 2010-09-19
        • 1970-01-01
        • 2017-07-28
        • 1970-01-01
        • 2014-10-17
        相关资源
        最近更新 更多