5

NERDTree 在视口磁盘 c 中显示:无论我从哪个磁盘打开文件。

当我在 Windows 中使用 gvim 时,我使用以下命令打开文件:

gvim.exe --remote-tab-silent [FILE]

我在 _vimrc 中用这一行加载 NERDTree:

au VimEnter * NERDTree

NERDTree 可以以某种方式自动更改驱动器以纠正驱动器吗?

4

4 回答 4

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 目录中打开。

于 2010-11-13T00:55:12.993 回答
5

NERDTree提供了几个 Ex 命令来操作其缓冲区(请参阅 参考资料:help NERDTreeGlobalCommands)。其中有一个:NERDTreeFind 命令,其行为方式与该:NERDTree命令相同,只是它在包含当前打开的文件的目录中打开 NERDTree 缓冲区。

因此,为了达到问题中描述的预期效果,您可以简单地将自动命令更改为读取

:autocmd VimEnter * NERDTreeFind
于 2010-10-12T05:44:12.410 回答
1

我为 NERDTree 使用映射,这样当我打开它时,它总是在当前目录中打开

" NERDTree mappings
 nnoremap <silent> <F9> :NERDTreeToggle <cr>
 inoremap <silent> <F9> <Esc>:NERDTreeToggle <cr>

但是,如果您打开像gvim ~/other/dir/fileNERDTree 这样的文件,则会打开调用 gvim 的当前目录。因此,这不是您问题的真正解决方案。

也许如果你cd在调用 gvim 之前在工作目录中会解决你的问题。在这种情况下,即使您的au VimEnter * NERDTreein _vimrc 也必须按照您的预期工作。

关于更改目录和设置工作目录set autochdir 阅读here

于 2010-10-11T18:26:15.087 回答
1

添加

au VimEnter,BufWinEnter * NERDTreeFind

到你的 .vimrc。

  • VimEnter 部分使它在负载下工作。
  • BufWinEnter 使您可以打开一个新文件。
  • *告诉它对所有文件执行此操作
  • NERDTreeFind 是要运行的命令

源代码: http ://vimdoc.sourceforge.net/htmldoc/autocmd.html

于 2012-08-16T21:01:06.897 回答