代码之家  ›  专栏  ›  技术社区  ›  Art

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

  •  1
  • Art  · 技术社区  · 8 年前

    通过打开新文件时 :E :bn! :bp! 命令。

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

    我确实有 set hidden 在我的 .vimrc 和跑步 :set hidden? 退货 hidden ,这意味着使用 :bp!

    2 回复  |  直到 8 年前
        1
  •  1
  •   romainl    8 年前

    通过打开新文件时 :E 命令时,Vim和MacVim(8.0.1098)都会丢弃当前缓冲区的内容,因此无法使用 :bn! :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
    

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

    是的,它几乎肯定在缓冲区列表中。尝试 :ls 对于列出的缓冲器和 :ls! :ls 应该给你看 a.txt b.txt :ls! 应该显示相同的,加上#2处的netrw缓冲区。

    :help 'hidden' .

    作为参考 应该是:

    1      "a.txt"                        line 1
    2u#h-  "~/"                           line 11
    3 %a   "~/b.txt"                      line 1
    

    ~/

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

        2
  •  0
  •   Art    8 年前

    事实上,ctrlP没有问题;切换缓冲区表明netrw有问题。

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