大きなファイルを開いているときに 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)

関連情報