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.
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.
Odpowiedzi:
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 10000000Maksymalny 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-x
gdy punkt znajduje się na tej linii, aby go wykonać teraz.
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.
Spójrz na funkcję otwierania plików: C-h k C-x C-f
(lub C-h f find-file RET
). Kliknij, files.el
aby 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-threshold
Musi 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.)