169

试图用书呆子树创建一个新文件。我按下a键创建一个新文件,我收到消息:

E21: Cannot make changes, 'Modifiable' is off

我正在使用 MacVim 和 Janus(几乎开箱即用)

4

7 回答 7

263
:set ma

这是缩写

:set modifiable

将使缓冲区可修改。和

:set noma

相反。

于 2012-03-14T16:58:02.570 回答
19

我对 NerdTree 不熟悉,但我猜想通过输入anerdtree 视图,它会被解释为“我想在 nerdtree 缓冲区中附加一些东西”,并且该缓冲区不可修改。

您可以检查答案vim 和 NERD 树扩展 - 添加一个文件,该文件说明如何使用 Nerdtree 添加文件。

于 2011-04-21T14:37:56.847 回答
5

这对我有用:

:set buftype=
:w
于 2019-08-01T21:43:12.477 回答
2

好的,这可能不是最明智的答案,因为我几乎没有 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=

问题解决了。

于 2012-10-08T23:52:30.583 回答
2

如果你想在 NERDTree 中生成一个文件,你需要点击“m”(用于菜单)然后点击“a”。只需在 NERDTree 缓冲区中输入“a”将被解释为“修改 NERDTree 缓冲区”。添加 :ma 将使 NERDTree 缓冲区可修改,但这不会为您创建新文件,它会导致 NERDTree 显示的内容与您的实际文件层次结构之间的信息不一致。

于 2018-03-07T08:37:22.520 回答
0

万一其他人碰巧用谷歌搜索,请检查您是否没有像我刚才那样尝试在 vim 中打开目录(d'oh)

于 2012-09-21T11:23:38.893 回答
0

对我来说,我已经隐藏了更改,其中包括一个目录,然后我试图在我刚刚隐藏的那个目录中创建一个文件。NERDTree 仍然显示带有该目录的预存储树。m在不存在的目录上使用会产生可修改的错误。我应该刷新树r以查看目录不再存在以及为什么无法修改它。

于 2020-04-14T15:08:57.727 回答