Иногда, когда я открываю большой файл в 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)