Jak mogę powstrzymać emacsa przed pytaniem, czy chcę załadować duży plik?


18

Kiedy otwieram duży plik w emacsie, pojawia się komunikat „Plik foo.bar jest duży; naprawdę otwarty?

Jak powstrzymać emacsa od ciągłego zadawania mi tego pytania? Innymi słowy, jeśli otworzę plik, chcę go otworzyć, bez względu na to, jak duży jest.


Odpowiedź jest dostępna tutaj: superuser.com/questions/508498/… (próg ostrzeżenia dla dużego zbioru plików zero)
R Perrin

Poniższa odpowiedź Gilles jest bardziej kompletna i nauczy Cię, jak rozwiązywać kolejne problemy.
jrouquie

Odpowiedzi:


29

Poprzez instrukcję

W instrukcji (którą możesz przeglądać w Emacsie w Info:) C-h i m Emacs RET: przejdź do rozdziału dotyczącego plików , a następnie do sekcji dotyczącej odwiedzania (tj. Otwierania) plików. Poszukaj słowa „duży”:

Jeśli spróbujesz odwiedzić plik większy niż large-file-warning-threshold(domyślnie jest to 10000000, czyli około 10 megabajtów), Emacs najpierw poprosi o potwierdzenie. Możesz odpowiedzieć y, aby przejść do pliku.

To nie jest cała historia, więcej informacji można znaleźć w dokumentacji large-file-warning-threshold( C-h v large-file-warning-threshold RET).

próg ostrzeżenia o dużych plikach jest zmienną zdefiniowaną w files.el.
Jego wartość wynosi 10000000

Maksymalny rozmiar pliku, powyżej którego wymagane jest potwierdzenie.
Kiedy zero, nigdy nie proś o potwierdzenie.

Aby ustawić wartość, możesz użyć interfejsu Dostosuj (na ekranie pomocy znajduje się link do zmiennej) lub umieścić następującą instrukcję w .emacs:

(setq large-file-warning-threshold nil)

Pisz, C-M-xgdy punkt znajduje się na tej linii, aby go wykonać teraz.

W interfejsie dostosowywania

W „Plikach”, w „Znajdź pliki” znajduje się ustawienie „Próg ostrzeżenia o dużych plikach”. Możesz ustawić dużą wartość, chociaż na komputerze 32-bitowym możesz napotkać stosunkowo mały twardy limit Emacsa dotyczący wielkości całkowitych.

Czytając źródło

Spójrz na funkcję otwierania plików: C-h k C-x C-f(lub C-h f find-file RET). Kliknij, files.elaby przeglądać plik źródłowy (musisz mieć zainstalowane źródła Lisp). Nie czytaj kodu - jest dość duży - ale szukaj części wiadomości w tym pliku. Znajdziesz

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

Komunikat jest wyświetlany tylko wtedy, gdy spełnione są określone warunki. Pierwszy warunek jest large-file-warning-threshold(interpretowany jako wartość logiczna), tzn. large-file-warning-thresholdMusi być inny niż zero. Możesz więc wyłączyć komunikat, ustawiając tę ​​zmienną na nil. (Możesz potwierdzić, że jest to zmienna globalna, patrząc na jej definicję w tym samym pliku - jest to element, który można dostosowywać, a dokumentacja wyjaśnia, w jaki sposób jest używana, jeśli nie znasz wystarczająco Lisp i tylko zorientowałeś się, że zmienna ma znaczenie w niektórych sposób.)


Jestem pod wrażeniem szczegółów i podanych przez ciebie referencji. Wielkie dzięki, Gilles.
Tola Odejayi
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.