Как мне остановить, чтобы emacs спросил меня, хочу ли я загрузить большой файл?

18

Когда я открываю большой файл в emacs, я получаю сообщение «файл foo.bar большой; действительно открыт?

Как я могу помешать emacs постоянно задавать мне этот вопрос? Другими словами, если я открою файл, я хочу открыть файл, независимо от его размера.

Тола Одежаи
источник
Ответ доступен здесь: superuser.com/questions/508498/… (setq large-file-warning-threshold-nil)
R Perrin
Ответ Жиля ниже является более полным и научит вас, как решить ваши следующие проблемы.
Jrouquie

Ответы:

29

Через руководство

В руководстве (которое вы можете просмотреть внутри Emacs в Info:): C-h i m Emacs RETперейдите к главе о файлах , затем к разделу о посещении (т.е. открытии) файлов. Ищите слово «большой»:

Если вы попытаетесь открыть файл размером больше large-file-warning-threshold(по умолчанию 10000000, что составляет около 10 мегабайт), Emacs сначала запросит у вас подтверждение. Вы можете ответить y, чтобы перейти к просмотру файла.

Это не вся история, вы можете найти больше информации, посмотрев документацию large-file-warning-threshold( C-h v large-file-warning-threshold RET).

large-file-warning-threshold - это переменная, определенная в files.el.
Его значение составляет 10000000

Максимальный размер файла, выше которого запрашивается подтверждение.
Когда ноль, никогда не запрашивать подтверждение.

Чтобы установить значение, вы можете использовать интерфейс Customize (на экране справки есть ссылка на переменную) или добавить следующий оператор в ваш .emacs:

(setq large-file-warning-threshold nil)

Введите, C-M-xпока точка находится на этой линии, чтобы выполнить ее сейчас.

В интерфейсе настройки

В разделе «Файлы», в разделе «Поиск файлов» есть настройка «Порог предупреждения для большого файла». Вы можете установить его на большое значение, хотя на 32-битной машине вы можете столкнуться с относительно небольшим жестким ограничением Emacs для целочисленных размеров.

Читая источник

Посмотрите на функцию для открытия файлов: C-h k C-x C-f(или C-h f find-file RET). Нажмите, files.elчтобы просмотреть исходный файл (у вас должны быть установлены исходные коды Lisp). Не читайте код - он довольно большой - но ищите части сообщения в этом файле. Ты найдешь

(defun abort-if-file-too-large (size op-type filename)
  "If file SIZE larger than `large-file-warning-threshold', allow user to abort.
OP-TYPE specifies the file operation being performed (for message to user)."
  (when (and large-file-warning-threshold size
       (> size large-file-warning-threshold)
       (not (y-or-n-p
         (format "File %s is large (%dMB), really %s? "
             (file-name-nondirectory filename)
             (/ size 1048576) op-type))))
      (error "Aborted")))

Сообщение отображается только при соблюдении некоторых условий. Первое условие large-file-warning-threshold(интерпретируется как логическое), т.е. large-file-warning-thresholdдолжно быть не ноль. Таким образом, вы можете отключить сообщение, установив для этой переменной значение nil. (Вы можете подтвердить, что это глобальная переменная, посмотрев на ее определение в том же файле - это настраиваемый элемент, и документация объясняет, как он используется, если вы недостаточно знакомы с Lisp и только выяснили, что переменная имела значение в некоторых путь.)

Жиль "ТАК - прекрати быть злым"
источник
Я впечатлен деталями и ссылками, которые вы предоставили. Большое спасибо, Жиль.
Тола Одежаи