我怎样才能中断 emacs 打开一个大文件?

我怎样才能中断 emacs 打开一个大文件?

偶尔,当我在 emacs 中打开一个大文件时,它会永远挂起,但 GUI 仍会保持响应!我可以在框架之间移动鼠标,光标会填充,在 dired 模式下将鼠标悬停在文件上仍会突出显示它们,等等。但单击不会导致任何实际操作执行。当然,理想情况下,emacs 中的任何错误最终都会得到修复,但就目前而言,我有什么办法可以中断 emacs 加载文件,或者更改我的 .emacs 以使其可中断?Ctrl+G 不起作用。

澄清:我试图不丢失我的工作——所以我的意思是中断 emacs无需杀死它,就像让它返回到我尝试打开文件之前的状态一样。

答案1

我使用以下钩子强制 Emacs 以基本模式、只读模式打开大文件,并且不进行撤消。这确实加快了查看大文件的速度,并避免了在字体化期间花费的时间。我发现这是一种有用的行为,并且我可以根据自己的需要随时轻松启用任何这些功能。更新 - 修复了 find-file-hook 的拼写错误。

(defun my-find-file-check-make-large-file-read-only-hook ()
  "If a file is over a given size, make the buffer read only."
  (when (> (buffer-size) (* 10 1024 1024))
    (setq buffer-read-only t)
    (buffer-disable-undo)
    (fundamental-mode)
    ; (message "Buffer is set to read-only because it is large.  Undo also disabled.")
    ))

(add-hook 'find-file-hook 'my-find-file-check-make-large-file-read-only-hook)

相关内容