Emacs

如何阻止 emacs 詢問我是否要載入大文件?

  • January 8, 2014

當我在 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-fC-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 不夠熟悉並且只發現該變數在某些情況下很重要,那麼文件解釋了它是如何使用的方式。)

引用自:https://unix.stackexchange.com/questions/108259