Comment puis-je empêcher emacs de me demander si je veux charger un gros fichier?

18

Lorsque j'ouvre un gros fichier dans emacs, je reçois un message disant que le fichier foo.bar est volumineux; vraiment ouvert?

Comment puis-je empêcher emacs de me poser cette question tout le temps? En d'autres termes, si j'ouvre le fichier, je veux l'ouvrir, peu importe sa taille.

Tola Odejayi
la source
La réponse est disponible ici: superuser.com/questions/508498/… (setq large-file-warning-threshold nil)
R Perrin
La réponse de Gilles ci-dessous est plus complète et vous apprendra comment résoudre vos prochains problèmes.
jrouquie

Réponses:

29

Via le manuel

Dans le manuel (que vous pouvez parcourir dans Emacs dans Info:): C-h i m Emacs RETallez dans le chapitre sur les fichiers , puis dans la section sur la visite (c'est-à-dire l'ouverture) des fichiers. Recherchez le mot «grand»:

Si vous essayez de visiter un fichier plus grand que large-file-warning-threshold(la valeur par défaut est 10000000, soit environ 10 mégaoctets), Emacs vous demande d'abord une confirmation. Vous pouvez répondre y pour continuer à visiter le fichier.

Ce n'est pas toute l'histoire, vous pouvez trouver plus d'informations en consultant la documentation de large-file-warning-threshold( C-h v large-file-warning-threshold RET).

large-file-warning-threshold est une variable définie dans files.el.
Sa valeur est 10000000

Taille maximale du fichier au-dessus de laquelle une confirmation est demandée.
Si nul, ne demandez jamais de confirmation.

Pour définir la valeur, vous pouvez soit utiliser l'interface de personnalisation (il y a un lien dans l'écran d'aide pour la variable), soit mettre l'instruction suivante dans votre .emacs:

(setq large-file-warning-threshold nil)

Tapez C-M-xpendant que le point se trouve sur cette ligne pour l'exécuter maintenant.

Dans l'interface Personnaliser

Sous «Fichiers», sous «Rechercher des fichiers», il y a un paramètre «Seuil d'avertissement de fichiers volumineux». Vous pouvez le définir sur une grande valeur, bien que sur une machine 32 bits, vous puissiez rencontrer la limite stricte relativement petite d'Emacs sur les tailles entières.

En lisant la source

Regardez la fonction pour ouvrir les fichiers: C-h k C-x C-f(ou C-h f find-file RET). Cliquez sur files.elpour parcourir le fichier source (vous devez avoir installé les sources Lisp). Ne lisez pas le code - il est assez gros - mais recherchez des parties du message dans ce fichier. Tu trouveras

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

Le message s'affiche uniquement lorsque certaines conditions sont remplies. La première condition est large-file-warning-threshold(interprétée comme booléenne), c'est-à-dire qu'elle large-file-warning-thresholddoit être non nulle. Vous pouvez donc désactiver le message en définissant cette variable sur nil. (Vous pouvez confirmer qu'il s'agit d'une variable globale en regardant sa définition dans le même fichier - c'est un élément personnalisable, et la documentation explique comment il est utilisé si vous n'êtes pas assez familier avec Lisp et seulement compris que la variable comptait dans certains façon.)

Gilles 'SO- arrête d'être méchant'
la source
Je suis impressionné par les détails et les références que vous avez fournis. Merci beaucoup, Gilles.
Tola Odejayi