如何在NERDTree插件中刷新

Tor*_*ess 30 vim nerdtree

当我在vim中使用(目录A in)打开文件时NERDTree,它运行良好.

但是,如果我在另一个目录(目录B)中再打开一个文件,它不会刷新以显示目录B的内容(虽然它仍然显示目录A).

可以NERDTree自动刷新吗?

Joh*_*ith 53

来自https://gist.github.com/geekontheway/2667442:只需点击"r"或"R"键即可刷新当前树.可以映射到.vimrc中的自动刷新.


She*_*yar 9

刷新NERDTree的键盘映射

我没有切换到NERDTree窗口,点击R并切换回来,而是使用为我做的自定义地图:

nmap <Leader>r :NERDTreeFocus<cr>R<c-w><c-p>
Run Code Online (Sandbox Code Playgroud)

设置后,按Leader+r将刷新NERDTree


注意:由于我也使用 CtrlP,所以我的实际键映射在刷新 NERDTree 后还有最后一步刷新 CtrlP


小智 9

我讨厌必须手动刷新我的 NERDTree 插件的想法。所以,我已将其添加到我的.vimrc

map <C-n> :call NERDTreeToggleAndRefresh()<CR>

function NERDTreeToggleAndRefresh()
  :NERDTreeToggle
  if g:NERDTree.IsOpen()
    :NERDTreeRefreshRoot
  endif
endfunction
Run Code Online (Sandbox Code Playgroud)

现在,每次打开 NERDTree 都会刷新。


suh*_*air 5

打开新文件后,只需发出命令:NERDTreeFind。它将选择 NerdTree 中当前编辑的文件节点。如果该节点不存在,则 NerdTree 将初始化一棵新树,并将根作为当前文件的目录。

您可以在打开 vim 时使用自动命令来跟踪目录。

au VimEnter * NERDTreeFind


Tho*_*enz 1

无论打开什么新文件,NerdTree 都会始终指向最初打开 vim 的目录。

要更改它,请将光标放在 NerdTree 窗口内所需的目录节点上,然后按cd

NerdTree 将在命令行中确认目录更改:

NERDTree:CWD 现在是:[此处的新目录]

请注意,这通常还会更改 vim 的工作目录,这在运行:edit somefile.