打开文件时替换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