在ViM中什么是Buffer 0?

E.B*_*ach 6 vim buffer

vim命令buflisted(0),bufexists(0)如果打开单个文件,则返回true.

我不明白这一点,因为输出ls显示文件作为缓冲区1(buflisted(1)并且bufexists(1)还返回true).如果我在缓冲区0上尝试任何缓冲操作,我会收到错误消息Zero count.

这似乎是一个特殊的缓冲区,但我找不到任何告诉我缓冲区0用于什么的信息.有人可以帮忙吗?

谢谢!

rom*_*inl 5

That 0 is explained in :help bufname(). It's the "alternate buffer" of the current buffer.

  • 我找不到那些文档,但是从代码中可以看出:`if(nr == 0)nr = curwin-> w_alt_fnum;`(在buflist_findnr中) (2认同)