如何中断 emacs 打开大文件?

Jos*_*vin 9 freeze emacs

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

澄清:我正在努力不丢失我的工作——所以我的意思是在不杀死它的情况下中断 emacs ,例如,让它恢复到我尝试打开文件之前的状态。

Tre*_*son 11

我使用以下钩子强制 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)
Run Code Online (Sandbox Code Playgroud)