【问题标题】:NERDTree reload new filesNERDTree 重新加载新文件
【发布时间】:2012-01-09 18:45:59
【问题描述】:

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

有没有办法重新加载NERDTree 中的文件?

【问题讨论】:

    标签: vim nerdtree


    【解决方案1】:

    您可以关闭并重新打开 NERDTree 或直接点击 r 刷新当前目录的列表或 R 刷新根目录的列表。

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

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

    【讨论】:

    • 关闭并重新打开 NERDTree 不起作用... r 起作用了!谢谢!
    • 重新打开它不起作用,因为 NERDTree 缓存了目录列表。使用“r”刷新时,您可以看到一条消息。
    • 我查看了 ? 帮助三遍,但从未见过 r
    • 确实,NERDTree 帮助窗口没有列出r 快​​捷方式
    • NERDTree ? quickhelp 确实在其“文件系统映射”部分列出了这些快捷方式。它列出了“r:刷新光标目录”和“R:刷新当前根目录”。
    【解决方案2】:

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

    您可以考虑通过按 m 来从 nerdTree 本身添加新文件,然后按 a 来添加新文件(或通过添加尾部斜杠来添加目录)。这样您无需刷新 nerdTree 即可查看新添加的文件。

    【讨论】:

      【解决方案3】:

      刷新NERDTree

      我没有在NERDTree 窗口中点击R,而是使用了一个自定义地图来为我完成它:

      nmap <Leader>r :NERDTreeRefreshRoot
      

      我已经将它映射到 Leader + r,但是你可以将它映射到任何你想要的。


      说明:

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

      注意:您可以将最后一步添加到refresh CtrlP along with NERDTree

      【讨论】:

      • 你可以映射到:NERDTreeRefreshRoot而不用聚焦树。
      【解决方案4】:

      您可以使用 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 将被切换并刷新根目录。

      【讨论】:

        【解决方案5】:

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

        autocmd BufEnter NERD_tree_* | execute 'normal R'

        【讨论】:

          猜你喜欢
          • 2012-08-25
          • 2013-01-15
          • 2015-10-03
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-08-18
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多