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

Vim netrw-在未拆分的情况下进行修改时进行探索,vim,netrw,Vim,Netrw,我打开了一个文件并对其进行了修改-现在我想做:不拆分地浏览 它会分裂-因为我有一个未保存的缓冲区。默认情况下,这很好,因为Vim通常不允许切换文件,除非您使用修改过的缓冲区(保存或放弃更改) 但我已经设置了隐藏选项,这样我就可以从一个缓冲区跳到另一个缓冲区,切换文件和所有内容,并在我想保存的时候保存或不保存。看来Netrw不遵守这项政策。我该怎么办 我知道的一种方法是将netrwexplore映射到save&explore,但我不确定自动编写是否是一种很好的方法。。。实际上,我现在正在使用其他自

我打开了一个文件并对其进行了修改-现在我想做
:不拆分地浏览

它会分裂-因为我有一个未保存的缓冲区。默认情况下,这很好,因为Vim通常不允许切换文件,除非您使用修改过的缓冲区(保存或放弃更改)

但我已经设置了
隐藏
选项,这样我就可以从一个缓冲区跳到另一个缓冲区,切换文件和所有内容,并在我想保存的时候保存或不保存。看来Netrw不遵守这项政策。我该怎么办


我知道的一种方法是将netrw
explore
映射到
save&explore
,但我不确定自动编写是否是一种很好的方法。。。实际上,我现在正在使用其他自动写入设置,但我只是在重新考虑是否可以去掉它们。

您可以使用
:Texplore
。这与explore相同,只是在一个新的选项卡中(并且不会有拆分)


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

要运行该命令,请使用
:BExplore


旧的缓冲区将位于后台,而“浏览”窗口指向文件所在的目录。

下面是函数,它只执行以下操作:

function! ExploreWithHidden()
    let s:cw = getcwd()
    lcd %:p:h
    enew
    Explore
    cd `=s:cw`
endfunction
似乎工作正常。

tpop的操作如下。它映射
-
以浏览当前文件的目录。(这与netrw用于上一个目录的键相同。)它使用当前窗口而不是拆分

修改当前文件时:

  • 如果您有“隐藏”集,它将不会从当前窗口拆分和浏览
  • 如果您没有设置“隐藏”,它将发出错误而不执行任何操作

你可以升级你的netrw——它最多可以升级到v153s,如果修改的缓冲区被隐藏,它确实可以避免拆分。

答案是Thx,但我的目标是在同一个窗口中打开。
Explore
的一点是,它打开netrw时指向当前文件所在的目录。创建一个新的缓冲区并进行
Explore
操作将打开它,指向当前工作目录。与执行
:e.
的结果相同。然而,我一直在思考这些问题——比如拆分并关闭前一个窗口,但我不知道如何“关闭前一个窗口”。非常适合,谢谢。我想我必须把它变成一个函数,将cwd存储在一个var中,然后在执行
Explore
之后把它带回来。或者有一种更为巧妙的方法可以做到这一点?@Luigi你也许可以用
:cd-
做点什么,但我不确定如果我是你,我是否会提出更改请求。这似乎应该得到netrw的支持。试试看,netrw作者在那里很活跃,很可能会回应。
function! ExploreWithHidden()
    let s:cw = getcwd()
    lcd %:p:h
    enew
    Explore
    cd `=s:cw`
endfunction