Wie verhindere ich, dass Emacs mich fragt, ob ich eine große Datei laden möchte?


18

Wenn ich eine große Datei in Emacs öffne, wird die Meldung angezeigt, dass die Datei foo.bar groß ist. wirklich offen? '

Wie verhindere ich, dass Emacs mir diese Frage ständig stellt? Mit anderen Worten, wenn ich die Datei öffne, möchte ich sie öffnen, egal wie groß sie ist.


Antwort gibt es hier: superuser.com/questions/508498/... (setq groß Datei-Warnschwelle nil)
R Perrin

Die Antwort von Gilles unten ist vollständiger und zeigt Ihnen, wie Sie Ihre nächsten Probleme lösen können.
Jrouquie

Antworten:


29

Über das Handbuch

Im Handbuch (das Sie in Emacs unter Info durchsuchen können:) C-h i m Emacs RET: Gehen Sie zum Kapitel über Dateien und dann zum Abschnitt über das Besuchen (dh Öffnen) von Dateien. Suchen Sie nach dem Wort "groß":

Wenn Sie versuchen, eine Datei zu besuchen, die größer ist als large-file-warning-threshold(der Standardwert ist 10000000, was etwa 10 Megabyte entspricht), werden Sie von Emacs zunächst um Bestätigung gebeten. Sie können mit y antworten, um die Datei zu besuchen.

Dies ist nicht die ganze Geschichte. Weitere Informationen finden Sie in der Dokumentation von large-file-warning-threshold( C-h v large-file-warning-threshold RET).

Large-File-Warning-Threshold ist eine Variable, die in definiert ist files.el.
Sein Wert ist 10000000

Maximale Dateigröße, ab der eine Bestätigung angefordert wird.
Wenn nicht, fordern Sie niemals eine Bestätigung an.

Um den Wert festzulegen, können Sie entweder die Benutzeroberfläche "Anpassen" verwenden (es gibt einen Link im Hilfebildschirm für die Variable) oder die folgende Anweisung in Ihre einfügen .emacs:

(setq large-file-warning-threshold nil)

Geben Sie ein, C-M-xwährend sich der Punkt auf dieser Linie befindet, um ihn jetzt auszuführen.

In der Benutzeroberfläche anpassen

Unter "Dateien" befindet sich unter "Dateien suchen" die Einstellung "Warnschwelle für große Dateien". Sie können einen großen Wert festlegen, obwohl Sie auf einem 32-Bit-Computer möglicherweise auf Emacs 'relativ kleines hartes Limit für Ganzzahlgrößen stoßen.

Durch das Lesen der Quelle

Schauen Sie sich die Funktion zum Öffnen von Dateien an: C-h k C-x C-f(oder C-h f find-file RET). Klicken Sie auf, files.elum die Quelldatei zu durchsuchen (Sie müssen die Lisp-Quellen installiert haben). Lesen Sie den Code nicht - er ist ziemlich groß - sondern suchen Sie in dieser Datei nach Teilen der Nachricht. Du wirst es finden

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

Die Meldung wird nur angezeigt, wenn einige Bedingungen erfüllt sind. Die erste Bedingung ist large-file-warning-threshold(als Boolescher Wert interpretiert), large-file-warning-thresholdmuss also nicht null sein. Sie können die Nachricht also deaktivieren, indem Sie diese Variable auf setzen nil. (Sie können bestätigen, dass es sich um eine globale Variable handelt, indem Sie sich die Definition in derselben Datei ansehen. Es handelt sich um ein anpassbares Element. In der Dokumentation wird erklärt, wie es verwendet wird, wenn Sie nicht genug mit Lisp vertraut sind und nur herausgefunden haben, dass die Variable in einigen Fällen eine Rolle spielt Weg.)


Ich bin beeindruckt von den Details und den Referenzen, die Sie angegeben haben. Vielen Dank, Gilles.
Tola Odejayi
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.