当我用(目录A in)NERDTree在vim中打开一个文件时,它工作得很好。但是如果我在另一个目录(目录B)中打开另一个文件,它不会刷新以显示目录B的内容(而仍然显示目录A)。NERDTree可以自动刷新吗?
NERDTree
gcmastyq1#
从https://gist.github.com/geekontheway/2667442开始:只需点击r或R键来刷新当前树。可以Map到.vimrc中的自动刷新
r
R
.vimrc
wribegjk2#
我没有切换到NERDTree窗口,而是使用一个自定义Map来完成这一任务:
nmap <Leader>r :NERDTreeFocus<cr>R<c-w><c-p>
设置后,按Leader + r将刷新NERDTree。
**注意:**因为我也使用CtrlP,所以实际的键Map最后一步是refresh CtrlP after refreshing NERDTree
7xllpg7q3#
我讨厌手动刷新我的NERDTree插件。所以,我把这个添加到我的.vimrc:
map <C-n> :call NERDTreeToggleAndRefresh()<CR> function NERDTreeToggleAndRefresh() :NERDTreeToggle if g:NERDTree.IsOpen() :NERDTreeRefreshRoot endif endfunction
现在,NERDTree在每次打开时都会刷新。
xxe27gdn4#
打开新文件后,发出:NERDTreeFind命令。它将在NerdTree中选择当前正在编辑的文件节点。如果该节点不存在,则NerdTree将初始化一个新的树,并将其根目录作为当前文件的目录。您可以在打开vim时使用autocommand跟踪目录。Au * NERDTreeFind
:NERDTreeFind
yfwxisqw5#
对于2016年看到这一点的人来说,这对我很有效:
autocmd CursorHold,CursorHoldI * call NERDTreeFocus() | call g:NERDTree.ForCurrentTab().getRoot().refresh() | call g:NERDTree.ForCurrentTab().render() | wincmd w
好好享受吧!
qoefvg9y6#
无论打开什么新文件,NerdTree都会一直指向最初打开Vim的目录。要更改它,请将光标放在NerdTree窗口中所需的目录节点上,然后按cd。NerdTree将在命令行中确认目录更改:NERDTree:CWD现在是:[此处为新目录]请注意,这通常也会更改vim的工作目录,这在运行:edit somefile等命令时非常重要。
cd
:edit somefile
6条答案
按热度按时间gcmastyq1#
从https://gist.github.com/geekontheway/2667442开始:只需点击
r
或R
键来刷新当前树。可以Map到.vimrc
中的自动刷新wribegjk2#
用于刷新NERDTree的键Map
我没有切换到
NERDTree
窗口,而是使用一个自定义Map来完成这一任务:设置后,按Leader + r将刷新
NERDTree
。**注意:**因为我也使用CtrlP,所以实际的键Map最后一步是refresh CtrlP after refreshing NERDTree
7xllpg7q3#
我讨厌手动刷新我的NERDTree插件。所以,我把这个添加到我的
.vimrc
:现在,NERDTree在每次打开时都会刷新。
xxe27gdn4#
打开新文件后,发出
:NERDTreeFind
命令。它将在NerdTree中选择当前正在编辑的文件节点。如果该节点不存在,则NerdTree将初始化一个新的树,并将其根目录作为当前文件的目录。您可以在打开vim时使用autocommand跟踪目录。
Au * NERDTreeFind
yfwxisqw5#
对于2016年看到这一点的人来说,这对我很有效:
好好享受吧!
qoefvg9y6#
无论打开什么新文件,NerdTree都会一直指向最初打开Vim的目录。
要更改它,请将光标放在NerdTree窗口中所需的目录节点上,然后按
cd
。NerdTree将在命令行中确认目录更改:
NERDTree:CWD现在是:[此处为新目录]
请注意,这通常也会更改vim的工作目录,这在运行
:edit somefile
等命令时非常重要。