【问题标题】:Emacs creates buffers very slowlyEmacs 创建缓冲区非常慢
【发布时间】:2012-02-08 21:32:19
【问题描述】:

在我的机器上,Emacs 在创建缓冲区时需要一个长文件:打开文件或目录时,或者启动 M-x shell 时。停顿10-15秒,真的很烦人。

当我打开大约 150 多个缓冲区(其中大部分是我机器上的文件和目录;有大约 5 个 cmd 支持的 shell 缓冲区;没有远程文件)时,似乎会出现这个问题。

我开启了 global-auto-revert-mode,但即使关闭,问题仍然存在。

我有这个东西,在 StackOverflow 的某处找到,在 .emacs,但它没有帮助:

(setq w32-get-true-file-attributes nil)

我的环境:Emacs 23.2.1,Windows 7。你对我可以尝试什么有什么建议吗?

【问题讨论】:

  • 打开了 150 多个缓冲区?我在尝试对此发表评论时遇到了 10-15 秒的停顿。
  • 同时打开的缓冲区的数量直接反映了一个人的 Emacs-fu。我的不是很强。
  • 打开许多缓冲区是有利的,因为这样您就可以使用 iswitchb(或其他东西)快速切换到任何缓冲区,而无需先打开它。有些人在启动 emacs 时会打开他们项目中所有可能的文件,这样他们以后就不必处理文件打开了。
  • @harpo:你可以暂停更长的时间——我现在有 703 个打开的缓冲区...
  • 是的,我知道我会后悔的。

标签: windows emacs


【解决方案1】:

我遇到了同样的问题,并追踪到了 vc-find-file-hook

将此行添加到 ~/.emacs 为我解决了问题

(删除-hook 'find-file-hooks 'vc-find-file-hook)

另见:

Git slows down Emacs to Death - How to Fix this?

【讨论】:

    【解决方案2】:

    您可能想检查find-file-hook 的值,以查看哪些软件包与文件打开挂钩,并可能尝试逐个删除它们以查看其中一个是否是罪魁祸首。

    【讨论】:

    • 感谢您的建议,但这不是原因。我清除了find-file-hook 并去了半天,仍然有延误。 (此外,打开目录和运行 shell 时也会出现相同的延迟,而这些延迟不使用 find-file-hook。)
    【解决方案3】:

    我也遇到过同样的问题,它会在文件系统的某些部分快速打开文件,而在其他部分则缓慢(延迟 10-15 秒)。我怀疑这可能是由于在 Windows 7 中打开文件的一些次优方式,所以我在 emacs.exe 文件上打开了 Compability mode (XP)。这解决了问题。

    这当然是一种解决方法,我怀疑真正的问题是 emacs 对文件的操作方式。希望这会在未来的某个时间得到解决。

    【讨论】:

      【解决方案4】:

      Jason Furtney 几乎相同,但在我的情况下:

      (remove-hook 'find-file-hooks 'vc-refresh-state)
      

      完成了任务。

      事实上,Windows 上的 git status 似乎是 SLOOOOOOWWWW。因此,如果您不需要有关 git status 文件的信息,这将大大加快速度。

      例如我的M-x org-agenda + a 不像以前那样需要很长时间。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-01-30
        • 2012-03-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多