Vim netrw - 在没有拆分的情况下进行修改时探索

时间:2013-07-02 16:06:51

标签: vim netrw

我已经打开了一个文件并对其进行了修改 - 现在我想在不分割的情况下进行:Explore

它分裂 - 因为我有一个未保存的缓冲区。默认情况下这很好,因为Vim通常不允许切换文件,直到您使用修改后的缓冲区执行某些操作(保存或放弃更改)。

但是我已经设置了hidden选项,所以我可以从缓冲区跳转到缓冲区,切换文件和所有内容 - 并且在我想要的时候保存或不保存。看来Netrw没有遵循这一政策。我怎么能帮忙呢?

我知道的一种方法是将netrw explore映射到save & explore,但我不确定自动写入是否是一种很好的做事方式......我实际上正在使用其他自动写入设置,但我只是在重新思考,可能会摆脱它们。

4 个答案:

答案 0 :(得分:2)

所以这就是函数,就是这样:

function! ExploreWithHidden()
    let s:cw = getcwd()
    lcd %:p:h
    enew
    Explore
    cd `=s:cw`
endfunction

似乎像预期的那样工作。

答案 1 :(得分:1)

您可以使用:Texplore代替。这与探索相同,除了在新选项卡中(并且没有拆分)。

:h Texplore


您可以做的另一件事是使用:lcd %:p:h将当前工作目录更改为文件目录。然后使用:enew创建另一个缓冲区,然后打开explore。 (如果缓冲区被修改,请确保隐藏处于打开状态)

:command! BExplore :lcd %:p:h | enew | Explore

要运行命令,请使用:BExplore

旧缓冲区将位于后台,探索窗口指向文件所在的目录。

答案 2 :(得分:1)

你可以升级你的netrw - 它在http://www.drchip.org/astronaut/vim/index.html#NETRW达到v153,并且如果修改后的缓冲区被隐藏,它确实可以避免拆分。

答案 3 :(得分:0)

tpope的vim-vinegar就像这样运作。它将-映射到浏览当前文件的目录。 (这与netrw用于上一个目录的密钥相同。)它使用当前窗口而不是拆分。

修改当前文件时:

  • 如果您设置了“隐藏”,则不会从当前窗口拆分和浏览。
  • 如果您没有设置'隐藏',则会发出错误并且什么都不做。