web-dev-qa-db-ja.com

大きなファイルをロードするかどうかをemacsから尋ねられないようにするにはどうすればよいですか?

Emacsで大きなファイルを開くと、「foo.bar file is large;本当に開いてる?」

Emacsがこの質問を常に出さないようにするにはどうすればよいですか?つまり、ファイルを開いたとしても、ファイルの大きさに関係なく、ファイルを開きたいのです。

19
Tola Odejayi

マニュアルを介して

manual (Info:C-h i m Emacs RETでEmacs内を参照できます)の場合: files の章に移動し、次に のセクションに移動します。訪問 (つまりファイルを開く)。 「大」という単語を探します。

large-file-warning-thresholdより大きいファイル(デフォルトは10000000、つまり約10メガバイト)にアクセスしようとすると、Emacsは最初に確認を求めます。 yと答えると、ファイルへのアクセスを続行できます。

これはすべてではありません。large-file-warning-thresholdC-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以外でなければなりません。したがって、その変数をnilに設定することでメッセージを無効にできます。 (同じファイル内の定義を見て、グローバル変数であることを確認できます。これはカスタマイズ可能なアイテムであり、LISPに精通しておらず、変数が重要であることがわかった場合にのみ、ドキュメントがその使用方法を説明しています仕方。)