如何阻止emacs问我是否要加载大文件?


18

当我在emacs中打开一个大文件时,收到一条消息,提示'foo.bar文件很大;真的开放吗?

如何阻止emacs一直问我这个问题?换句话说,如果我打开文件,则无论文件有多大,我都希望打开它。


答案可在此处找到:superuser.com/questions/508498/… (setq large-file-warning-threshold nil)
R Perrin 2014年

Gilles在下面的回答更加完整,它将教您如何解决下一个问题。
jrouquie 2015年

Answers:


29

通过手册

手册(您可以在Info:中的Emacs内部浏览C-h i m Emacs RET)中:转到有关文件的章节,然后转到有关访问(即打开)文件的部分。查找“大”一词:

如果您尝试访问的文件大于 large-file-warning-threshold(默认值为10000000,大约10兆字节),Emacs将首先要求您确认。您可以回答y以继续访问文件。

这还不是全部,您可以通过large-file-warning-thresholdC-h v large-file-warning-threshold RET)的文档找到更多信息。

大文件警告阈值是在中定义的变量files.el
它的值是10000000

要求确认的最大文件大小。
如果为零,则永远不要请求确认。

要设置值,您可以使用Customize界面(变量帮助屏幕上有一个链接),也可以在您的代码中输入以下语句.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不够熟悉并且只是弄清楚该变量在某些情况下很重要,那么如何使用它。办法。)


您提供的详细信息和参考信息给我留下了深刻的印象。非常感谢,吉尔斯。
Tola Odejayi 2014年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.