NERDTree重载新文件

如果我将一个文件添加到在NERDTree中打开的同一目录中,我可以看到添加的文件的唯一方法是退出vim并重新启动它。

是否有一种方法可以重新加载NERDTree中的文件?

65962 次浏览

你可以关闭并重新打开NERDTree,或者简单地点击r来刷新当前目录的列表,或者R来刷新根目录的列表。

你看到“Press”了吗?在NERDTree窗口顶部的“寻求帮助”?这意味着你可以按?寻求帮助。如果这样做,您将看到NERDTree快捷方式的详尽列表。这是整洁的。

更一般地说,许多插件都有一个完整的文档,你可以用:help <pluginame>访问。

正如@romainl上面回答的那样;按r刷新当前目录或按R刷新根目录。

您可以考虑通过按从nerdTree本身添加新文件,然后按一个来添加一个新文件(或通过添加后面的斜杠来添加目录)。这样你就不需要刷新nerdTree来看到新添加的文件。

刷新NERDTree

我没有在NERDTree窗口中点击R,而是使用一个自定义映射来为我做这件事:

nmap <Leader>r :NERDTreeRefreshRoot

我已经将它映射到领袖 + r,但你可以将它映射到任何你想要的东西。


解释:

  • 它首先切换到NERDTree窗口
  • 然后刷新根节点(通过模拟R键)
  • 最后切换回前一个窗口

注:你可以添加最后一步到刷新CtrlP连同NERDTree

你可以使用feedkeys函数来点击R按钮。就像这样:

call feedkeys("R")

我在.vimrc文件中定义了一个函数:

fun! ToggleNERDTreeWithRefresh()
:NERDTreeToggle
if(exists("b:NERDTreeType") == 1)
call feedkeys("R")
endif
endf


nmap <silent> <c-l> :call ToggleNERDTreeWithRefresh()<cr>

因此,当我输入ctrl+l时,NERDTree将被切换并刷新根目录。

我个人更喜欢在NERDTree窗口聚焦时触发刷新自动。这个自动命令(在你的.vimrc中)将完成它

autocmd BufEnter NERD_tree_* | execute 'normal R'