如何在 vim Netrw 树视图中显示文件?

pau*_*ani 5 vim

如何在Netrw树视图中显示特定文件(通常是当前缓冲区),类似于:NERDTreeFindfor 命令NERDTree

更准确地说...

我在缓冲区中打开了一个文件,我用它:Expore来打开netrw.

我希望显示活动缓冲区中的文件netrw(将所有目录从工作目录展开到文件),以便我可以看到其所有同级文件和文件夹。

pau*_*ani 4

这里有一个简单的方法来做到这一点。
您可以将:Explore命令更改为Vexplore:Hexplore等。

# show file in netrw
command! ExploreFind let @/=expand("%:t") | execute 'Explore' expand("%:h") | normal n

# or as a mapping
map <Leader>f :let @/=expand("%:t") <Bar> execute 'Explore' expand("%:h") <Bar> normal n<CR>
Run Code Online (Sandbox Code Playgroud)

这里有一些解释:

  • let @/=expand("%:t")将最后一次搜索设置为当前文件名
  • execute 'Explore' expand("%:h")open netrw 将当前文件路径作为参数传递,以确保它列出该目录
  • normal n在目录列表中搜索文件名

从https://vim.fandom.com/wiki/Search_for_current_word_in_new_window得到这个想法。

注意:这并不完全相同,NERDTreeFind因为它不会显示整个目录树,但它足以满足我的需要。