打开文件时替换Vim中的当前缓冲区

打开文件时替换Vim中的当前缓冲区,vim,macvim,Vim,Macvim,当通过:E命令打开新文件时(不使用ctrl-p插件,这很好!),Vim和MacVim(8.0.1098)都会丢弃当前缓冲区的内容,因此无法使用:bn切换到if和:bp命令 但是,如果我修改当前缓冲区的内容,然后打开另一个文件,然后尝试关闭MacVim,我会收到一条关于未保存文件的警告消息。那么缓冲器一定还在某个地方 另外,如果我分割窗口并打开一个文件,那么两个缓冲区都保持打开状态 我的中确实有set hidden。vimrc运行:set hidden?返回hidden,这意味着使用:bn滚动隐藏

当通过
:E
命令打开新文件时(不使用ctrl-p插件,这很好!),Vim和MacVim(8.0.1098)都会丢弃当前缓冲区的内容,因此无法使用
:bn切换到if
:bp命令

但是,如果我修改当前缓冲区的内容,然后打开另一个文件,然后尝试关闭MacVim,我会收到一条关于未保存文件的警告消息。那么缓冲器一定还在某个地方

另外,如果我分割窗口并打开一个文件,那么两个缓冲区都保持打开状态

我的
中确实有
set hidden
。vimrc
运行
:set hidden?
返回
hidden
,这意味着使用
:bn滚动隐藏缓冲区
:bp应该可以工作,但它不能

通过
:E
命令打开新文件时,Vim和MacVim(8.0.1098)都会丢弃当前缓冲区的内容,因此无法使用
:bn!切换到if
:bp命令

您描述的行为与以下内容不一致:

  • 预期的行为
  • 和我的行为完全一样
要以可重复的方式对其进行测试:

$ vim -Nu NORC a.txt     starts Vim with a.txt
:Explore                 replaces the current buffer with a netrw buffer
(press <CR> on b.txt)    replaces the netrw buffer with b.txt
:bn (or :bp)             replaces the current buffer with a.txt
请注意,唯一的“未列出”缓冲区应该是Netrw缓冲区:
~/
位于#2


您是否在
$HOME
之外更改了任何与Vim相关的文件或目录?

事实上,ctrlP在打开和切换缓冲区时没有问题,这表明netrw有问题

经过仔细检查,我的netrw插件已经过时了


升级到v162j(通过Vundle)解决了问题。

尝试了该命令行,得到了相同的行为,尽管我可以在
:ls中看到它
1u“a.txt”行1 2u#h-“~/”行29 3%a“~/b.txt”行1
发现了这个问题-但是我的
设置为隐藏?
返回
nohidden
哪个应该是想要的模式?将其翻转到
隐藏
将返回正确的行为。奇怪。是的,
set hidden
几乎是强制性的。嗯,我的
.vimrc
中有
set hidden
,它似乎没有什么帮助。它是否可以在其他地方被覆盖?您输出的
:ls中的
u
表示“未上市”。这完全不正常。
1      "a.txt"                        line 1
2u#h-  "~/"                           line 11
3 %a   "~/b.txt"                      line 1