1

Vim 的 Netrw 文件浏览器有以下错误: 运行命令 :e。将打开 Netrw,但在 Netrw 关闭后,Vim 的缓冲区列表中有一个潜在缓冲区,不能用命令 :bprev 遍历。(:bnext 工作正常。)

此错误在以下位置进行了讨论:

https://www.bountysource.com/issues/45921122-previous-doesn-t-work-with-e-buffer

https://groups.google.com/forum/#!topic/vim_use/zzeQItJQNZI

要复制此错误,请启动 Vim 并运行以下命令:

:ls!
:edit ./file1.txt | ls!
:edit ./file2.txt | ls!
:e. #(choose file3.txt in Netrw)
:edit ./file4.txt | ls!
:ls!

此时,您将看到已打开文件的缓冲区以及一些带有路径的缓冲区,以及一个带有 [No Name] 的缓冲区。尝试导航这些缓冲区

:bnext | ls!
:bprev | ls!

您会发现 :bnext 成功地循环了缓冲区,但 :bprev 挂在 Netrw 缓冲区上。是否有解决此错误的方法,以便使用 :bnext 和 :bprev 进行缓冲区导航仍然有效?

编辑 2021-11-28:这里有更好的解释:

https://github.com/ap/vim-buftabline/issues/31

https://github.com/ap/vim-buftabline/issues/25

4

1 回答 1

3

我通过实验发现,如果我在 [No Name] 缓冲区之前删除路径缓冲区, :bprev 将恢复运行。然而,这很麻烦。

相反,我已经开始使用 :Explore 打开 Netrw。这不会创建跳闸的潜在缓冲区:bprev,但我仍然能够浏览我的本地目录树并打开文件进行编辑。

于 2018-01-15T19:53:59.417 回答