如何将NERDTree添加到您的.vimrc


118

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


我更新了答案。我不确定是否可以将其添加到您的.vimrc中以执行所需的操作,但是我知道您可以通过自动运行NERDTree的方式从命令行运行vim。看一看:)
Steven Kryskalla 09年

Answers:


199

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

autocmd VimEnter * NERDTree

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

autocmd VimEnter * NERDTree
autocmd VimEnter * wincmd p

我不知道为什么,但这对我不起作用。我必须在vim内致电:NERDTreeToggle来显示nerdtree
hgf 2010年

如果您使用的是vimpager之类的/.vim/after/plugin/NERD_tree.vim脚本,则应将这些行移至脚本中,这样它就不会尝试在关闭插件的情况下执行。
约书亚·奥尔森

9
您不需要两个单独的autocmd:autocmd VimEnter * NERDTree | wincmd p
Dave James Miller

我可以简单地指定要开始的实际路径吗?-Yup使用文件夹(最后没有斜线)
AturSams 2014年

1
我更喜欢执行以下操作: autocmd VimEnter * NERDTree然后 autocmd VimEnter * if argc() | wincmd p | endif。这样,如果我尚未打开特定文件,则光标位于NERDTree上,但是如果我选择了一个文件,它将在主窗口中开始。
user2275806 2015年

20

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

autocmd VimEnter * if !argc() | NERDTree | endif

19

您是在Windows还是UNIX系统上?

如果您使用的是Unix系统,则将插入~/.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。

您还可以添加快捷键以.vimrc这种方式启动NERDTree :

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

nmap <ESC>t :OpenNERDTree<CR>

现在,当你打Esc那么t它会弹出打开NERDTree。


我正在运行Unix-y机器。我已经安装了NERDTree,我需要在命令行输入vim时启动NERDTree。这样,文件浏览器总是向左打开,就像在Textmate中一样。我不知道要在vimrc中放入什么内容,我尝试了:NERDTree,但它似乎无法识别该命令...
chutsu

2
我想补充一下,您可以映射到内置的:NERDTreeToggle,这会使您的自定义函数变得相当多余。
加文·吉尔摩

1
出色的提示alias vimt='vim -c "NERDTree" $1'
pedrosaurio

8

按照NERDTree的说明,您可以只使用病原体。通过以下方式安装:

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

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

1
好一个...我也使用Vim作为传呼机,只是添加了一个参数来禁用自动命令... export MANPAGER='col -bx | mvim -c ":set ft=man nonu nolist" -c ":autocmd!" -M -R - > /dev/null 2>&1'
Eddie B

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.