Bagaimana saya menghentikan emacs untuk bertanya apakah saya ingin memuat file besar?

18

Ketika saya membuka file besar di emacs, saya mendapatkan pesan yang mengatakan 'foo.bar file berukuran besar; benar-benar terbuka? '

Bagaimana saya menghentikan emacs untuk menanyakan pertanyaan ini kepada saya sepanjang waktu? Dengan kata lain, jika saya membuka file, saya ingin membuka file, tidak peduli seberapa besar itu.

Tola Odejayi
sumber
Jawaban tersedia di sini: superuser.com/questions/508498/… (setq large-file-warning-threshold nil)
R Perrin
Jawaban Gilles di bawah ini lebih lengkap dan akan mengajarkan Anda cara menyelesaikan masalah Anda berikutnya.
jrouquie

Jawaban:

29

Melalui manual

Dalam manual (yang dapat Anda telusuri di dalam Emacs di Info:) C-h i m Emacs RET: buka bab tentang file , lalu ke bagian tentang mengunjungi (yaitu membuka) file. Cari kata "besar":

Jika Anda mencoba mengunjungi file yang lebih besar dari large-file-warning-threshold(standarnya adalah 10000000, yaitu sekitar 10 megabyte), Emacs meminta Anda untuk konfirmasi terlebih dahulu. Anda dapat menjawab y untuk melanjutkan dengan mengunjungi file.

Ini bukan keseluruhan cerita, Anda dapat menemukan informasi lebih lanjut dengan melihat dokumentasi large-file-warning-threshold( C-h v large-file-warning-threshold RET).

large-file-warning-threshold adalah variabel yang didefinisikan dalam files.el.
Nilainya adalah 10000000

Ukuran maksimum file di atas yang diminta konfirmasi.
Saat nihil, jangan pernah meminta konfirmasi.

Untuk mengatur nilai, Anda bisa menggunakan antarmuka Kustomisasi (ada tautan di layar bantuan untuk variabel), atau tulis pernyataan berikut di Anda .emacs:

(setq large-file-warning-threshold nil)

Ketik C-M-xsaat intinya ada di baris itu untuk menjalankannya sekarang.

Di antarmuka Kustomisasi

Di bawah "File", di bawah "Temukan File", ada pengaturan "Batas Peringatan File Besar". Anda dapat mengaturnya ke nilai yang besar, meskipun pada mesin 32-bit Anda dapat mengalami batas keras Emacs yang relatif kecil pada ukuran integer.

Dengan membaca sumbernya

Lihatlah fungsi untuk membuka file: C-h k C-x C-f(atau C-h f find-file RET). Klik files.eluntuk menelusuri file sumber (Anda harus menginstal Lisp sources). Jangan membaca kode - ini cukup besar - tetapi cari bagian pesan di file itu. Anda akan menemukannya

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

Pesan hanya ditampilkan ketika beberapa kondisi terpenuhi. Kondisi pertama adalah large-file-warning-threshold(diartikan sebagai boolean), yaitu large-file-warning-thresholdharus non-nil. Jadi, Anda dapat menonaktifkan pesan dengan mengatur variabel itu ke nil. (Anda dapat mengonfirmasi bahwa itu adalah variabel global dengan melihat definisinya di file yang sama - ini adalah item yang dapat disesuaikan, dan dokumentasi menjelaskan bagaimana itu digunakan jika Anda tidak cukup mengenal Lisp dan hanya tahu bahwa variabel itu penting dalam beberapa cara.)

Gilles 'SANGAT berhenti menjadi jahat'
sumber
Saya terkesan dengan detail dan referensi yang Anda berikan. Terima kasih banyak, Gilles.
Tola Odejayi