有时我需要打开几个 GB 的日志文件,现在我需要使用 tail 来获取合适的部分,但这非常繁琐。
我可以直接使用 vim 打开它吗?目前 vim 在打开大文件时会占用大量内存...只是想知道为什么需要它?是否有某些选项可以阻止加载内存?
答案1
如果你只是想查看一个文件,可以使用较少的。
如果需要剪切文件的特定部分,请执行以下操作(在较少的):
转到您感兴趣的第一页
按下按键m-a这意味着:标记位置a。
转到您感兴趣的文件的最后一个位置
按下按键|(管道)a- 这意味着:将此处和位置 a 之间的所有内容通过管道传输到命令
输入要发送数据的命令。如果要将此数据复制到编辑器缓冲区,只需使用
vim -
as 命令(减号 as filename 表示要编辑的文件将从标准输入读取)。
如果您知道您将需要从特定位置直到文件末尾的所有数据,您也可以这样做:
转到您感兴趣的第一页
按下按键|(管道)$- 这意味着:将此处和文件末尾之间的所有内容通过管道传输到命令
输入您想要发送数据的命令(例如
cat >/tmp/myfile
或vim -
)。
答案2
答案3
是的,Vim 可以打开非常大文件。但是,为了节省内存,在执行此操作之前您可能应该记住一些事项:
- 忽略文件类型(无语法高亮等),尽管很可能它根本不会对日志文件进行语法高亮,但只是为了确保它不会开始浏览它们
- noswapfile(你肯定不想要那么大的文件副本)
- bufhidden = unload(查看其他文件时节省内存)
- buftype = nowritefile (只读)
- undolevels = -1(无法撤消)
也许我错过了一两个选项,但这些都在我的 _vimrc 中。