126

如何将 NERDTree 添加到我的 .vimrc?

4

7 回答 7

209

好的,以前的版本有点简洁,但您正在寻找的答案是将下面的行添加到您的~/.vimrc文件中。它告诉 Vim 你想设置一个在 Vim 启动时运行的命令,但由于它依赖于要加载的各种插件,所以你不想在所有初始化完成之前运行它:

autocmd VimEnter * NERDTree

但是,如果您对光标总是在 NERDTree 窗口中开始这一事实感到恼火,您可以添加第二个自动命令,将光标移动到主窗口中:

autocmd VimEnter * NERDTree
autocmd VimEnter * wincmd p
于 2009-09-19T14:24:24.623 回答
24

我只喜欢在没有文件参数的情况下启动 vim 时看到 NERDTree,所以我将它添加到我的 .vimrc 中:

autocmd VimEnter * if !argc() | NERDTree | endif
于 2012-05-09T16:04:58.027 回答
19

您使用的是 Windows 还是 unix-y 系统?

如果您使用的是 unix-y 系统,则将插件放入~/.vim/plugin. 这是我的插件目录的样子:

$ ls ~/.vim/plugin
NERD_tree.vim  scratch.vim  scratchfind.vim

之后,它立即开始工作。尝试像这样运行 vim:

$ vim .

它应该在 NERD 树视图中打开当前目录。

如果您在 Windows 上,则将插件放在这里:C:\Program Files\Vim\vim70\plugin


要让 NERDTree 在您启动 vim 时自动加载,请从命令行运行它:

$ vim -c "NERDTree" some_file.txt

你可以在你的.bashrc

alias vimt='vim -c "NERDTree" $1'

现在,无论何时运行vimt(而不是vim),您还将在窗口左侧打开 NERDTree。

您还可以通过以下方式添加快捷键来启动 NERDTree .vimrc

function OpenNERDTree()
  execute ":NERDTree"
endfunction
command -nargs=0 OpenNERDTree :call OpenNERDTree()

nmap <ESC>t :OpenNERDTree<CR>

现在,当你点击它Esc时,t它会弹出打开 NERDTree。

于 2009-09-19T03:16:23.817 回答
9

根据NERDTree 说明,您可以只使用pathogen.vim。安装它:

mkdir -p ~/.vim/autoload ~/.vim/bundle; \
curl -Sso ~/.vim/autoload/pathogen.vim \
        https://raw.github.com/tpope/vim-pathogen/master/autoload/pathogen.vim

将此添加到您的 .vimrc 中:

execute pathogen#infect()

然后安装NERDTree:

cd ~/.vim/bundle
git clone https://github.com/scrooloose/nerdtree.git

如果你想在 Vim 启动时自动打开 NERDTree,请将以下内容添加到你的 .vimrc 中:

autocmd vimenter * NERDTree
于 2013-01-27T08:51:30.043 回答
7

这里的答案有一个小问题。

如果调用vim --noplugin或使用使用--noplugin模式如vimpager的脚本,会导致此错误:

Error detected while processing VimEnter Auto commands for "*":
E492: Not an editor command: NERDTree

为避免这种情况,请~/.vim/after/plugin/NERD_tree.vim改为输入命令:

autocmd VimEnter * NERDTree

测试是否可用也是一个好主意NERDtree,即:

if exists("loaded_nerd_tree")
    autocmd VimEnter * NERDTree
endif
于 2011-04-23T08:47:20.117 回答
7
" NERD Tree
nmap <silent> <special> <F2> :NERDTreeToggle<RETURN>
于 2012-05-10T12:39:02.970 回答
1

我喜欢在启动时打开 NERDTree,但有两个要求:

  • 仅在没有参数(文件参数)时打开 NERDTree
  • 只显示 NERDTree 窗口(我不想显示主窗口)

我使用这个命令:

autocmd VimEnter * if !argc() | NERDTree | wincmd p | q | endif

更新(2022 年 1 月 9 日)

我找到了一种更高效的方法来满足我上面指定的两个要求。

从 .vimrc 文件中删除我上面提到的 autocmd。相反,创建一个这样的别名:

vim() {
  if [ $# -eq 0 ]; then
    /usr/bin/vim ./
  else
    /usr/bin/vim "$@"
  fi
}
于 2021-10-16T19:23:27.990 回答