vim“modifiable”关闭

时间:2011-04-21 14:30:50

标签: vim vi macvim nerdtree

尝试使用书呆子树创建新文件。我点击a键创建一个新文件,然后收到消息:

E21: Cannot make changes, 'Modifiable' is off

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

7 个答案:

答案 0 :(得分:203)

:set ma

的缩写
:set modifiable

将使缓冲区可修改。和

:set noma

恰恰相反。

答案 1 :(得分:16)

我不熟悉NerdTree,但我想通过在一个nerdtree视图中键入 a ,它被解释为“我想在nerdtree缓冲区中添加一些内容”,并且该缓冲区不可修改

您可以查看答案vim and NERD Tree extension - adding a file,其中说明了如何使用Nerdtree添加文件。

答案 2 :(得分:2)

这对我有用:

:set buftype=
:w

答案 3 :(得分:1)

好吧,这可能不是最明智的答案,因为我几乎没有vim或linux的工作知识,但我已找到解决我的问题,它可能适合你。具体来说,我的问题是双重的:

1)每当我试图在我创建的这个新文件中编辑某些东西时,我得到了无法进行更改,'可修改'是关闭错误并且......

2)运行后:设置可修改并尝试保存,我会得到一个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=

问题解决了。

答案 4 :(得分:1)

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

答案 5 :(得分:0)

如果有其他人碰巧谷歌这个,请检查你是不是想尝试在vim中打开一个目录,就像我一样(d'oh)

答案 6 :(得分:0)

对我来说,我保存了更改,其中包括一个目录,然后尝试在刚保存的那个目录中创建一个文件。 NERDTree仍在显示带有该目录的预先隐藏的树。在不存在的目录上使用error: non-static method methodA(Context,String) cannot be referenced from a static context error: non-static method getCustomObject1() cannot be referenced from a static context 会产生可修改的错误。我应该用m刷新树,以查看目录不再存在以及为什么无法对其进行修改。