在Vim中打开大文件

在Vim中打开大文件,vim,Vim,当被要求打开一个大文件时,是否可以让Vim发出警告提示 当前,当我试图打开日志文件(其大小我还没有检查)时,Vim或运行Vim的VM崩溃。您可以使用这样的函数 :function OpenFile() :let size =getfsize(@%) :if size>100000 "more than 100kb :echo "Warning: This is a large file" :endif :end function 现在,在打开文件时调用此函数

当被要求打开一个大文件时,是否可以让Vim发出警告提示


当前,当我试图打开日志文件(其大小我还没有检查)时,Vim或运行Vim的VM崩溃。

您可以使用这样的函数

  :function OpenFile()
  :let size =getfsize(@%)
  :if size>100000    "more than 100kb
  :echo "Warning: This is a large file"
  :endif
  :end function
现在,在打开文件时调用此函数,BufEnter会为您执行此操作

   :au BufEnter *.* :call OpenFile()
将以上所有行放入~/.vimrc中


如果文件大小大于100000,则会发出警告。

您所说的文件有多大?Vim即使在大文件上也不应该完全崩溃,只是速度非常慢。什么版本的Vim?最近有几个修复程序用于修复Vim对超过32位限制的文件的处理,如果Vim编译为64位支持,IIRC。简单:有意识地检查大小。如果您希望以KB为单位计算文件大小,可以将
/1024
添加到数字中(如100000)。如果你想用KB和MB来简化它,我们可以再增加一行来计算。这不是个好主意
BufEnter
在文件打开后运行。更糟糕的是,它在切换缓冲区时也会运行。我相信OP希望在打开一个大文件之前有机会中止。我猜他写过“发出警告提示”。现在我将更改它。打开文件后,OP会出现崩溃提示,:)因此有机会中止似乎是唯一有意义的读取方法。佐藤是正确的,
BufEnter
在文件打开后运行,并且没有机会中止打开文件。