试图用书呆子树创建一个新文件。我按下a
键创建一个新文件,我收到消息:
E21: Cannot make changes, 'Modifiable' is off
我正在使用 MacVim 和 Janus(几乎开箱即用)
:set ma
这是缩写
:set modifiable
将使缓冲区可修改。和
:set noma
相反。
我对 NerdTree 不熟悉,但我猜想通过输入anerdtree 视图,它会被解释为“我想在 nerdtree 缓冲区中附加一些东西”,并且该缓冲区不可修改。
您可以检查答案vim 和 NERD 树扩展 - 添加一个文件,该文件说明如何使用 Nerdtree 添加文件。
这对我有用:
:set buftype=
:w
好的,这可能不是最明智的答案,因为我几乎没有 vim 或 linux 的工作知识,但我找到了解决我的问题的方法,它可能对你有用。具体来说,我的问题是双重的:
1) 每当我尝试在我创建的这个新文件中编辑某些内容时,我都会收到无法进行更改、“可修改”关闭错误和...
2)运行 :set modifiable 并尝试保存后,我会收到一个 e382 错误“无法写入,buftype 已设置”。所以我无法保存。
在倾注了大量无用的神秘文档后,我发现了这一点:
1)找到 .vimviews 目录,对我来说它位于我的 git 存储库的根目录下,执行
ls
在里面。我得到了这样的东西:
~=+www-halo=+test=+lib=+Halo=+Return2=+HeaderTest.php=
~=+www-halo=+test=+lib=+Halo=+Service=+LandmarkTest.php=
~=+www-halo=+test=+lib=+Halo=+Transaction=+AuthnetTest.php=
这对您完全没用,因为您有不同的文件结构。但寻找给你带来问题的文件。(哦,顺便说一句,这些实际上是文件名,通过查看它们完全不明显)。找到有问题的文件并删除那个傻瓜:例如:
rm ~=+www-halo=+test=+lib=+Halo=+Return2=+HeaderTest.php=
问题解决了。
如果你想在 NERDTree 中生成一个文件,你需要点击“m”(用于菜单)然后点击“a”。只需在 NERDTree 缓冲区中输入“a”将被解释为“修改 NERDTree 缓冲区”。添加 :ma 将使 NERDTree 缓冲区可修改,但这不会为您创建新文件,它会导致 NERDTree 显示的内容与您的实际文件层次结构之间的信息不一致。
万一其他人碰巧用谷歌搜索,请检查您是否没有像我刚才那样尝试在 vim 中打开目录(d'oh)
对我来说,我已经隐藏了更改,其中包括一个目录,然后我试图在我刚刚隐藏的那个目录中创建一个文件。NERDTree 仍然显示带有该目录的预存储树。m
在不存在的目录上使用会产生可修改的错误。我应该刷新树r
以查看目录不再存在以及为什么无法修改它。