Как прервать открытие большого файла в 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)

Связанный контент