Як я не можу emacs запитувати мене, чи хочу я завантажити великий файл?


18

Коли я відкриваю великий файл у emacs, я отримую повідомлення про те, що файл foo.bar великий; справді відкрито? '

Як я не можу постійно emacs задавати мені це питання? Іншими словами, якщо я відкриваю файл, я хочу відкрити файл, незалежно від того, наскільки він великий.


Відповідь доступна тут: superuser.com/questions/508498/… (setq великий файл-попередження-поріг нуля)
R Perrin

Відповідь Гілла нижче є більш повною і навчить вас вирішувати наступні проблеми.
jrouquie

Відповіді:


29

Через посібник

У посібнику (який ви можете переглядати всередині Emacs в Інфо:) 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).

великий-файл-попередження-поріг - це змінна, визначена в files.el.
Його вартість - 10000000

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

Щоб встановити значення, можна або скористатися інтерфейсом Налаштувати (на екрані довідки для змінної є посилання) або укласти наступне твердження у свій .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, і лише зрозуміли, що ця змінна має значення в деяких спосіб.)


Мене вражають деталі та надані вами посилання. Велике спасибі, Жилле.
Tola Odejayi
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.