当通过:E
命令打开一个新文件时(不是使用ctrl-P插件,这很好用!),Vim和MacVim(8.0.1098)都丢弃了当前缓冲区的内容,所以不可能使用:bn!
和:bp!
命令切换到if。
但是,如果我修改当前缓冲区的内容,然后打开另一个文件,然后尝试关闭MacVim,我收到有关未保存文件的警告消息。所以缓冲区必须仍悬在某处?
此外,如果我拆分窗口并打开文件,则两个缓冲区都保持打开状态。
我的set hidden
中有.vimrc
并且:set hidden?
正在运行hidden
,这意味着使用:bn!
和:bp!
滚动隐藏的缓冲区应该工作,但它没有。
答案 0 :(得分:1)
通过
:E
命令打开新文件时,Vim和MacVim(8.0.1098)都会丢弃当前缓冲区的内容,因此无法切换到使用:bn!
和{{ 1}}命令。
您描述的行为与以下内容不一致:
以可重复的方式测试它:
:bp!
但是,如果我修改当前缓冲区的内容,然后打开另一个文件,然后尝试关闭MacVim,我收到有关未保存文件的警告消息。所以缓冲区必须仍悬在某处?
是的,它几乎肯定在缓冲区列表中。对于列出的缓冲区尝试$ 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
,对所有缓冲区尝试:ls
。 :ls!
应该在#1显示:ls
,在#3显示a.txt
,而b.txt
应该显示相同的信息,加上#2的netrw缓冲区。
另请参阅:ls!
。
---编辑---
作为参考,:help 'hidden'
的预期输出应为:
:ls!
请注意,唯一的&#34;未列出&#34;缓冲区应该是Netrw缓冲区:#{1}}位于#2。
您是否对1 "a.txt" line 1
2u#h- "~/" line 11
3 %a "~/b.txt" line 1
以外的任何与Vim相关的文件或目录进行了更改?
答案 1 :(得分:0)
ctrlP没有问题打开&amp;切换缓冲区表明netrw有问题。
仔细观察后发现我的netrw插件已经过时了。
升级到v162j(通过Vundle)解决了这个问题。