如何阻止 emacs 詢問我是否要載入大文件?
當我在 emacs 中打開一個大文件時,我收到一條消息說 ‘foo.bar 文件很大;真的開放嗎?
如何阻止emacs一直問我這個問題?換句話說,如果我打開文件,我想打開文件,不管它有多大。
通過手冊
在手冊中(您可以在 Emacs 中的 Info: 中瀏覽
C-h i m Emacs RET
):轉到有關文件的章節,然後轉到有關訪問(即打開)文件的部分。尋找“大”這個詞:如果您嘗試訪問大於
large-file-warning-threshold
(預設為 10000000,大約為 10 兆字節)的文件,Emacs 會首先要求您確認。您可以回答 y 以繼續訪問該文件。這不是全部,您可以通過查看
large-file-warning-threshold
(C-h v large-file-warning-threshold RET
) 的文件找到更多資訊。large-file-warning-threshold 是在
files.el
.它的值是 10000000
請求確認的最大文件大小。
當 nil 時,永遠不要請求確認。
要設置該值,您可以使用自定義界面(變數的幫助螢幕中有一個連結),或者將以下語句放入您的
.emacs
:(setq large-file-warning-threshold nil)
C-M-x
當點在該行上時鍵入以立即執行它。在自定義界面中
在“文件”下,在“查找文件”下,有一個“大文件警告門檻值”設置。您可以將其設置為較大的值,但在 32 位機器上您可能會遇到 Emacs 對整數大小的相對較小的硬限制。
通過閱讀源碼
查看打開文件的功能:(
C-h k C-x C-f
或C-h f find-file RET
)。點擊files.el
以瀏覽源文件(您必須安裝 Lisp 源)。不要閱讀程式碼——它非常大——而是在該文件中搜尋部分消息。你會找到(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")))
僅當滿足某些條件時才會顯示該消息。第一個條件是
large-file-warning-threshold
(解釋為布爾值),即large-file-warning-threshold
必須為非零。因此,您可以通過將該變數設置為 來禁用該消息nil
。(你可以通過在同一個文件中查看它的定義來確認它是一個全域變數——它是一個可定制的項目,如果你對 Lisp 不夠熟悉並且只發現該變數在某些情況下很重要,那麼文件解釋了它是如何使用的方式。)