¿Cómo evito que emacs me pregunte si quiero cargar un archivo grande?

18

Cuando abro un archivo grande en emacs, recibo un mensaje que dice 'el archivo foo.bar es grande; realmente abierto?

¿Cómo evito que emacs me haga esta pregunta todo el tiempo? En otras palabras, si abro el archivo, quiero abrir el archivo, no importa cuán grande sea.

Tola Odejayi
fuente
Respuesta está disponible aquí: superuser.com/questions/508498/... (setq nula a gran archivo de alerta-umbral)
R Perrin
La respuesta de Gilles a continuación es más completa y le enseñará cómo resolver sus próximos problemas.
jrouquie

Respuestas:

29

A través del manual

En el manual (que puede explorar dentro de Emacs en Información:) C-h i m Emacs RET: vaya al capítulo sobre archivos , luego a la sección sobre visitas (es decir, apertura) de archivos. Busque la palabra "grande":

Si intenta visitar un archivo más grande que large-file-warning-threshold(el valor predeterminado es 10000000, que es aproximadamente 10 megabytes), Emacs le pide confirmación primero. Puede responder y para continuar visitando el archivo.

Esta no es toda la historia, puede encontrar más información mirando la documentación de large-file-warning-threshold( C-h v large-file-warning-threshold RET).

large-file-warning-umbral es una variable definida en files.el.
Su valor es 10000000

Tamaño máximo de archivo por encima del cual se solicita una confirmación.
Cuando sea nulo, nunca solicite confirmación.

Para establecer el valor, puede usar la interfaz Personalizar (hay un enlace en la pantalla de ayuda para la variable) o poner la siguiente declaración en su .emacs:

(setq large-file-warning-threshold nil)

Escriba C-M-xmientras el punto está en esa línea para ejecutarlo ahora.

En la interfaz Personalizar

En "Archivos", en "Buscar archivos", hay un ajuste "Umbral de advertencia de archivos grandes". Puede establecerlo en un valor grande, aunque en una máquina de 32 bits puede encontrarse con el límite duro relativamente pequeño de Emacs en tamaños enteros.

Al leer la fuente

Mire la función para abrir archivos: C-h k C-x C-f(o C-h f find-file RET). Haga clic en files.elpara explorar el archivo fuente (debe tener instaladas las fuentes Lisp). No lea el código, es bastante grande, pero busque partes del mensaje en ese archivo. Encontrarás

(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")))

El mensaje solo se muestra cuando se cumplen algunas condiciones. La primera condición es large-file-warning-threshold(interpretada como booleana), es decir, large-file-warning-thresholddebe ser no nula. Para que pueda deshabilitar el mensaje estableciendo esa variable en nil. (Puede confirmar que es una variable global mirando su definición en el mismo archivo; es un elemento personalizable, y la documentación explica cómo se usa si no está lo suficientemente familiarizado con Lisp y solo descubrió que la variable importaba en algunos camino.)

Gilles 'SO- deja de ser malvado'
fuente
Estoy impresionado por los detalles y las referencias que ha proporcionado. Muchas gracias, Gilles.
Tola Odejayi