Vim 如何使NERDTree与我';我在编辑?
NERDTree在视口中显示磁盘c:无论从哪个磁盘打开文件 在windows中使用gvim时,我会使用以下方式打开文件:Vim 如何使NERDTree与我';我在编辑?,vim,nerdtree,Vim,Nerdtree,NERDTree在视口中显示磁盘c:无论从哪个磁盘打开文件 在windows中使用gvim时,我会使用以下方式打开文件: gvim.exe --remote-tab-silent [FILE] 我正在用这行代码加载NERDTree au VimEnter * NERDTree NERDTree是否可以自动将驱动器更改为正确的驱动器?我使用NERDTree的映射,这样打开它时,它总是以当前目录打开 " NERDTree mappings nnoremap <silent> <
gvim.exe --remote-tab-silent [FILE]
我正在用这行代码加载NERDTree
au VimEnter * NERDTree
NERDTree是否可以自动将驱动器更改为正确的驱动器?我使用NERDTree的映射,这样打开它时,它总是以当前目录打开
" NERDTree mappings
nnoremap <silent> <F9> :NERDTreeToggle <cr>
inoremap <silent> <F9> <Esc>:NERDTreeToggle <cr>
“NERDTree映射
nnoremap:nerdtreethoggle
inoremap:nerdtreetogle
但是如果你打开一个文件,比如gvim~/other/dir/file
NERDTree会打开当前的目录,从那里调用gvim。所以这不是解决问题的真正方法
如果您在调用gvim之前在working dir中使用cd
,可能会解决您的问题。在这种情况下,即使您在vimrc中的au-VimCenter*NERDTree
也必须按照您的要求工作
关于更改目录和设置工作目录set autochdir
提供了几个Ex命令来操作其缓冲区(请参阅
:help nerdtreeGlobalCommand
)。其中有:NERDTreeFind
命令,其行为与:NERDTree
命令相同,只是它打开了
包含当前打开文件的目录中的NERDTree缓冲区
因此,为了达到问题中描述的预期效果,您可以
只需将auto命令更改为read
:autocmd VimEnter * NERDTreeFind
实际上,我的最后一个答案不起作用,因为一旦NERDTree被打开,它就不会在新的buffer dir中再次打开。它必须与NERDTreeFind类似,但它没有切换功能 我创建了一个函数并将其映射到我的键,现在它可以完美地工作,即使您有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>
function!NTFinderP()
“”检查NERDTree是否打开
如果存在(“t:NERDTreeBufName”)
设s:ntree=bufwinnr(t:nerdtreebuffname)
其他的
设s:ntree=-1
恩迪夫
如果(s:ntree!=-1)
“”如果NERDTree是打开的,请将其关闭。
:NERDTreeClose
其他的
“”尝试为rails项目打开:Rtree
如果存在(“:Rtree”)
“”打开Rtree(使用rails插件,它在项目目录中打开)
:Rtree
其他的
“”在文件路径中打开NERDTree
:NERDTreeFind
恩迪夫
恩迪夫
端功能
“”切换NERDTree
映射:调用NTFinderP()
现在应该可以了
先前的答复如下: 您可以映射用于打开的密钥 像这样的NERDTree(in.vimrc):
map:nerdtreettoggle%:p:h
这将我的F1键映射到
使用
当前活动缓冲区的路径。
如果没有打开缓冲区,则它将在中打开
当前已启动Macvim目录
加
给你的vimrc
- Vicenter部件使其在负载下工作
- BufWinter让你打开一个新文件
告诉它对所有文件执行此操作*
- NERDTreeFind是要运行的命令
这正是我想要的,但由于我是Windows用户,而不是Rails的主要开发人员,所以我将“if(s:ntree!=-1)else”简单地称为:NERDTreeFind。有人能帮我理解
“t:NERDTreeBufName”
的意思吗?
map <silent> <F1> :NERDTreeToggle %:p:h<CR>
au VimEnter,BufWinEnter * NERDTreeFind