7

Спорадически, когда я открываю большой файл в emacs, он будет зависать вечно, за исключением того, что GUI останется отзывчивым! Я могу перемещать мышь между кадрами, и курсор будет заполнен, наведение курсора на файлы в режиме Dired по-прежнему выделяет их и т.д., Но нажатие не приводит к выполнению каких-либо действий. В идеале, конечно, любая ошибка в emacs будет исправлена в конце концов, но сейчас я могу прервать загрузку файла в emacs или изменить мой .emacs, чтобы он стал прерываемым? Ctrl+G не работает.

Уточнение: я пытаюсь не потерять свою работу - поэтому я имею в виду прерывание Emacs без его уничтожения, например, чтобы оно вернулось к тому, что было до того, как я попытался открыть файл.

1 ответ1

9

Я использую следующий хук, чтобы заставить Emacs открывать большие файлы в основном режиме, только для чтения и без отмены. Это ускоряет просмотр больших файлов, что позволяет избежать затрат времени во время фонификации. Я считаю, что это полезное поведение, и я всегда могу легко включить любую из этих функций, если захочу. UPDATE - исправлена опечатка с помощью команды 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)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .