NERDTree:未创建节点

时间:2010-10-24 08:30:54

标签: vim nerdtree

使用vim;我正在尝试通过NERDTree将文件(.py文件)添加到目录中。我只需要浏览到我想要放入文件的目录,然后点击“m”然后“a”将我的文件命名为目录。问题是NERDTree一直告诉我:“NERDTree:Node Not Created”。这意味着没有创建该文件。

为什么?我错过了什么?

由于

编辑:

当我尝试创建目录时,vim(实际上是NERDTree)失败并显示以下错误消息:

Error detected while processing function <SNR>14_showMenu..30..47..NERDTreeAddNode:
line   18:
E716: Key not present in Dictionary: isOpen || !empty(parentNode.children)
E15: Invalid expression: parentNode.isOpen || !empty(parentNode.children)
Error detected while processing function <SNR>14_showMenu..30..47:
line    6:
E171: Missing :endif
Error detected while processing function <SNR>14_showMenu..30:
line   19:
E171: Missing :endif

6 个答案:

答案 0 :(得分:5)

我认为NERD Tree存在一个错误。

它似乎链接到目录名称中的空格。尝试创建一个目录,然后将文件路径追溯到最低目录,其中包含空格。您可能会发现已创建一个单独的目录,其中带有反斜杠的空格“已转义”。节点是在此层次结构下创建的。

尝试克隆并安装此patched version - 正如GWW评论中所建议的那样 - 使用git。这解决了我的问题。

或者,如果路径中有空格,请不要使用NERDTree创建文件。

答案 1 :(得分:1)

检查以确保您使用的是最新版本的NERDTree

只需查看文件~/.vim/plugins/NERD_tree.vim,确保第let s:NERD_tree_version = '4.1.0'行靠近顶部。

还要确保文件~/.vim/nerdtree_plugin/fs_menu.vim存在。这是nerdtree文件命令所必需的。

答案 2 :(得分:0)

此功能在此完美运行,因此可能与您的特定设置有关。您确定您拥有在该目录中创建文件的有效权限吗?或者它可能与您的文件命名有关。

答案 3 :(得分:0)

答案 4 :(得分:0)

我知道这是一个老问题,但我认为人们仍然有这个问题。我一直对OS X MacVim感到困惑!我认为这与路径中有空格有关。解决此问题的关键是更新fs_menu.vim(它位于~/.vim/nerdtree_plugin/文件夹中)。

要解决此问题,我从official repository获取了最新版本的NERD树:

git clone https://github.com/scrooloose/nerdtree.git

进入名为nerdtree的克隆git存储库:

cd nerdtree

将NERD_tree.vim复制到〜/ .vim / plugin /

cp plugin/NERD_tree.vim ~/.vim/plugin/

复制包含fs_menu.vim

的nerdtree_plugin文件夹

cp -r nerdtree_plugin ~/.vim/

在OS X的上一个命令中,请确保指定nerdtree_plugin而不是nerdtree_plugin/

答案 5 :(得分:0)

这可能是一个简单的权限问题。这取决于您尝试创建文件的位置。尝试直接从编辑器执行命令。我的vim命令

:!touch somefile.py

给出相同的响应。而且,当我转到命令行并尝试在同一位置触摸somefile.py时,它不会让我离开。

当我在命令中添加sudo时,事情发生了巨大变化。

但是,即使您可以像这样在vim编辑器中添加sudo

:!sudo touch [/path/to/]somefile.py

我认为您不能使NERDtree迅速成为根源。

因此,您需要将NERDtree设为sudoer。我不认为NERDtree运行用户,因为它是vim的插件,所以一种快速而肮脏的解决方案是在sudo模式下运行vim。 sudo vim 之后,当您打开NERDtree并键入m a,然后输入文件或目录/名称时,它将为您创建它而没有任何问题

显然,有一个原因导致vim编辑器不是root用户,并且仅在需要时才应以root用户运行,例如在编辑敏感文件时。