NERDTree在视口磁盘c中显示:无论从哪个磁盘打开文件.
当我在Windows中使用gvim时,我使用以下命令打开文件:
gvim.exe --remote-tab-silent [FILE]
Run Code Online (Sandbox Code Playgroud)
我在_vimrc中使用此行加载NERDTree:
au VimEnter * NERDTree
Run Code Online (Sandbox Code Playgroud)
NERDTree可以自动更改驱动器以某种方式纠正驱动器吗?
实际上,我的上一个答案不起作用,因为一旦NERDTree被打开,它就不会在新的缓冲区目录中再次打开.它必须与NERDTreeFind类似,但它没有Toggle功能.
我创建了一个函数并将其映射到我的密钥,现在如果你有vim-rails插件,它甚至可以打开Ruby项目.
将其添加到您的vimrc:
function! NTFinderP()
"" Check if NERDTree is open
if exists("t:NERDTreeBufName")
let s:ntree = bufwinnr(t:NERDTreeBufName)
else
let s:ntree = -1
endif
if (s:ntree != -1)
"" If NERDTree is open, close it.
:NERDTreeClose
else
"" Try to open a :Rtree for the rails project
if exists(":Rtree")
"" Open Rtree (using rails plugin, it opens in project dir)
:Rtree
else
"" Open NERDTree in the file path
:NERDTreeFind
endif
endif
endfunction
"" Toggles NERDTree
map <silent> <F1> :call NTFinderP()<CR>
Run Code Online (Sandbox Code Playgroud)
它现在应该工作.
以前的答案如下:
你可以映射你用来打开NERDTree的密钥(在.vimrc中):
Run Code Online (Sandbox Code Playgroud)map <silent> <F1> :NERDTreeToggle %:p:h<CR>这将我的F1键映射到使用当前活动缓冲区的路径切换(打开/关闭)NERDTree.如果没有打开缓冲区,它将在当前启动的Macvim目录中打开.
NERDTree提供了几个Ex命令来操作它的缓冲区(参见
参考资料:help NERDTreeGlobalCommands).其中有一个:NERDTreeFind
命令行为与:NERDTree命令相同,只是它在包含当前打开文件的目录中打开NERDTree缓冲区.
因此,为了达到问题中描述的预期效果,您只需更改auto-command即可读取
:autocmd VimEnter * NERDTreeFind
Run Code Online (Sandbox Code Playgroud)