Vim为什么能比其他一些文本编辑器更快地打开大文件?


10

当打开大日志文件时(嗯,不是那么大,但是80mb仍然是很多文本!),我一直使用Vim,因为它几乎立即加载了它们。其他文本编辑器(如Notepad,Notepad ++等)将花费> 10秒来处理和加载文件。这是什么原因呢?是什么让Vim如此之快?


8
开启语法高亮显示并感到惊讶,vim会变得多么慢
Marco

11
对亲密的选民:我认为这个问题是有建设性的-正如答案所表明的那样,Vim使用的一些技术可以使它处理大文件时比其他一些编辑器更有效。这是一个具体的答案,可以得到事实/参考的支持。而且我不确定为什么人们会认为这是本地化的。编辑者处理文件的方式有明显的不同,这些文件所影响的范围远不限于一个较小的地理区域,特定的时间段或极为狭窄的情况
Bob

1
@Bob-我看不到该问题的答案如何解决任何问题。
Nifle 2012年

Answers:


16

编辑者可以使用多种技巧来优化处理大文件。

一种是只满足他们的需求。这意味着不要尝试分析整个文件,例如行计数,宽度测量,自动换行,语法突出显示,XML验证,HTML渲染,撤消等。Vim提供了LargeFile插件,它将禁用许多Vim功能。打开“大”(由用户定义)文件时。Vim Wiki上的“ 快速加载大文件”页面提到了一些禁用的功能:忽略文件类型(用于语法突出显示/分析),禁用撤消,切换到只读模式。也有其他变化,但是它们似乎是针对内存保存而不是速度。

另一个是内存映射。而不是将整个文件读入内存,而是告诉底层操作系统将文件视图直接映射到进程的内存空间。我不确定Vim是否可以做到这一点,但是其他编辑器可以做到。

这些可能是最大的2,但肯定还有更多。


您有使用这些技术中的任何一种来参考vim吗?
slhck 2012年

我无法特别评论内存映射,但是绝对可以做到。编辑即将发布。
afrazier 2012年

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.