Come posso impedire a emacs di chiedermi se voglio caricare un file di grandi dimensioni?


18

Quando apro un file di grandi dimensioni in emacs, ricevo un messaggio che dice 'il file foo.bar è grande; davvero aperto? '

Come posso impedire a emacs di farmi questa domanda continuamente? In altre parole, se apro il file, voglio aprire il file, non importa quanto sia grande.


La risposta è disponibile qui: superuser.com/questions/508498/… (setq file di grandi dimensioni soglia di avviso zero)
R Perrin

La risposta di Gilles di seguito è più completa e ti insegnerà come risolvere i tuoi prossimi problemi.
jrouquie,

Risposte:


29

Tramite il manuale

Nel manuale (che puoi sfogliare all'interno di Emacs in Info:) C-h i m Emacs RET: vai al capitolo sui file , quindi alla sezione relativa alla visita (ovvero apertura) dei file. Cerca la parola "grande":

Se provi a visitare un file più grande di large-file-warning-threshold(il valore predefinito è 10000000, che è di circa 10 megabyte), Emacs ti chiede prima di confermare. Puoi rispondere a y per procedere con la visita del file.

Questa non è l'intera storia, puoi trovare maggiori informazioni guardando la documentazione di large-file-warning-threshold( C-h v large-file-warning-threshold RET).

large-file-warning -reshold è una variabile definita in files.el.
Il suo valore è 10000000

Dimensione massima del file oltre la quale è richiesta una conferma.
Se zero, non richiedere mai la conferma.

Per impostare il valore, è possibile utilizzare l'interfaccia Personalizza (è presente un collegamento nella schermata della guida per la variabile) oppure inserire la seguente istruzione nel proprio .emacs:

(setq large-file-warning-threshold nil)

Digita C-M-xmentre il punto è su quella linea per eseguirlo ora.

Nell'interfaccia Personalizza

Sotto "File", sotto "Trova file", c'è un'impostazione "Soglia di avviso file di grandi dimensioni". Puoi impostarlo su un valore elevato, sebbene su una macchina a 32 bit potresti imbatterti nel limite rigido relativamente piccolo di Emacs per le dimensioni di numeri interi.

Leggendo la fonte

Guarda la funzione per aprire i file: C-h k C-x C-f(o C-h f find-file RET). Fare clic su files.elper sfogliare il file sorgente (è necessario disporre delle fonti Lisp installate). Non leggere il codice - è piuttosto grande - ma cerca parti del messaggio in quel file. Lo troverai

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

Il messaggio viene visualizzato solo quando sono soddisfatte alcune condizioni. La prima condizione è large-file-warning-threshold(interpretata come un valore booleano), ovvero large-file-warning-thresholddeve essere nulla. Quindi puoi disabilitare il messaggio impostando quella variabile su nil. (Puoi confermare che si tratta di una variabile globale osservando la sua definizione nello stesso file: è un elemento personalizzabile e la documentazione spiega come viene utilizzata se non hai abbastanza familiarità con Lisp e solo capito che la variabile contava in alcuni modo.)


Sono impressionato dai dettagli e dai riferimenti che hai fornito. Grazie mille, Gilles.
Tola Odejayi,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.