Vim中"modifiable"已关闭。

185

我正在尝试使用 NERDTree 创建一个新文件。我按下 a 键创建新文件时出现以下信息:

E21: 无法进行更改,'Modifiable' 已关闭

我正在使用几乎默认的 Janus MacVim。


4
了解:在 NERDTree 中添加新文件,需要键入 m,然后再键入 a - Leighton
我刚刚新建了一个文件夹,而非文件,并尝试使用VIM编辑该目录。这导致了以下错误。 :-) - prinzu
7个回答

289
:set ma

这是缩写,代表

:set modifiable

会使缓冲区可修改。而

:set noma

执行相反的操作。


5
对这个答案点赞。谷歌搜索关闭缓冲区可修改标志的方法时会显示此页面。 - Sebastián Grignoli
有人知道我该如何在NERDTree中撤销删除的操作吗?比如我使用了“dd”命令,然后尝试使用“u”命令撤销,但是没有任何反应。 - betoharres
7
在修改文件后,我还需要使用:set buftype: " "来写入文件(否则会出现“无法写入,'buftype'选项已设置”的信息)。 - Julien Carsique

21

我不熟悉NERDTree,但我猜想在NERDTree视图中键入a被解释为“我想向NERDTree缓冲区附加一些内容”,但是该缓冲区是不可修改的。

您可以查看此答案vim和NERDTree扩展 - 添加文件,它解释了如何使用NERDTree添加文件。


1
就是这样,查看 NERDTree 的帮助文档中并没有 a 映射,这会导致它尝试追加新文本。 - sidyll

8
这对我有用:
:set buftype=
:w

在“=”后面应该添加什么? - Mohamed Ali
什么都没有。这意味着将一个空值赋给buftype - mipmip
对我也有效,但如何使更改持久化?当我再次回来并进入文件时,我需要重复这个命令。 - Maralc
我正在使用nvim进行教程。在Mac上使用Homebrew安装了它。 - Maralc

3
如果你想在NERDTree中创建一个文件,需要按下"m"键(打开菜单),然后再按下"a"键。 直接在NERDTree缓冲区输入"a"键将被解释为"修改NERDTree缓冲区"。 加上":ma"将使NERDTree缓冲区可修改,但这并不会为你创建新的文件,它将导致NERDTree显示和你实际文件层次结构之间的信息不一致。

2

好的,我并不是vim或linux方面的专家,但我已经找到了解决问题的办法,也许对你有用。 具体来说,我的问题有两个:

1)每当我尝试编辑新创建的文件时,都会收到“无法进行更改,‘Modifiable’处于关闭状态”错误提示...

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=

问题已解决。

1
在使用NerdTree时,我也遇到了这个问题。只有在退出导致问题的vim会话后才能解决。我猜测它一直在重置这个“视图”。 - John

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

0

如果有其他人通过谷歌搜索到这里,请检查一下您是否像我一样尝试在vim中打开一个目录(d'oh)


1
你可以在Vim中打开目录。默认情况下,它将启动Netrw。 - htmldrum
例如,您可以选择目录中的文件,对它们的名称进行一些更改并保存。 - Karolius

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接