NERDTree在视口磁盘c中显示:无论从哪个磁盘打开文件。
当我在Windows中使用gvim时,我使用:
打开文件gvim.exe --remote-tab-silent [FILE]
我在_vimrc中使用此行加载NERDTree:
au VimEnter * NERDTree
NERDTree可以自动更改驱动器以某种方式纠正驱动器吗?
答案 0 :(得分:6)
实际上,我的上一个答案不起作用,因为一旦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>
现在应该可以了。
上面的答案如下:
您可以映射您用来打开的密钥 像这样的NERDTree(在.vimrc中):
map <silent> <F1> :NERDTreeToggle %:p:h<CR>
这将我的F1键映射到 切换(打开/关闭)NERDTree使用 当前活动缓冲区的路径。 如果没有打开缓冲区,它将打开 目前推出了Macvim目录。
答案 1 :(得分:5)
NERDTree提供了几个Ex命令来操作它的缓冲区(参见
:help NERDTreeGlobalCommands
)。其中有:NERDTreeFind
命令行为与:NERDTree
命令相同,但打开时除外
包含当前打开文件的目录中的NERDTree缓冲区。
因此,为了达到问题中描述的预期效果,您可以 只需将auto-command更改为
即可:autocmd VimEnter * NERDTreeFind
答案 2 :(得分:1)
我使用NERDTree的映射,这样当我打开它总是在当前目录中打开
" NERDTree mappings
nnoremap <silent> <F9> :NERDTreeToggle <cr>
inoremap <silent> <F9> <Esc>:NERDTreeToggle <cr>
但是如果你打开像gvim ~/other/dir/file
这样的文件,NERDTree将从调用gvim的地方打开当前目录。所以这不是解决问题的真正方法。
也许如果你在调用gvim之前在工作目录中cd
将解决你的问题。在这种情况下,即使_vimrc中的au VimEnter * NERDTree
也必须按照您的意愿工作。
关于更改目录和设置工作目录set autochdir
read here
答案 3 :(得分:1)
添加
au VimEnter,BufWinEnter * NERDTreeFind
到你的.vimrc。
*
告诉它对所有文件执行此操作