有没有一种方法可以获取Vim缓冲区中的行数,而不仅仅是当前缓冲区的行数?
使用line('$')
可以获得当前缓冲区最后一行的行号,从而得到行数。使用getbufline({expr}, 1 , '$')
可以获取由{expr}
表示的缓冲区的行字符串列表,列表大小即为行数。
使用getbufline
会导致在内存中复制整个文件,以获取它包含的行数。 line
可以完成任务,但仅适用于当前缓冲区。
假定通过脚本来完成此操作,而非交互式操作,并且尽可能地减少开销,例如使用line('$')
。
:h :profile
中找到相关信息。但是对于一行命令,有一个更简单的方法:let rt=reltime() | {do action} | echom reltimestr(reltime(rt))
。 - ZyXvi a.txt b.txt
命令后,a.txt
文件已经被加载并准备好进行编辑。而加载b.txt
文件则会被推迟,直到首次切换到该缓冲区时才会进行。 - doraemon