160

Trying to create a new file with nerd tree. I hit the a key to create a new file and i get the message:

E21: Cannot make changes, 'Modifiable' is off

I'm using MacVim and Janus (almost out of the box)

Xavier T.
  • 37,562
  • 8
  • 64
  • 95
wesbos
  • 24,103
  • 27
  • 99
  • 139

7 Answers7

250
:set ma

which is short for

:set modifiable

will make a buffer modifiable. And

:set noma

does the opposite.

Adam Soltys
  • 2,674
  • 1
  • 17
  • 13
19

I am not familiar with NerdTree but I guess that by typing a into a nerdtree view, it is interpreted as " I want to append something in the nerdtree buffer", and that buffer is not modifiable.

You can check that answer vim and NERD Tree extension - adding a file which explains how to add a file with Nerdtree.

Community
  • 1
  • 1
Xavier T.
  • 37,562
  • 8
  • 64
  • 95
  • 1
    That's it, checking the help for NERDTree there is no `a` mapping, which will cause it to try appending new text. – sidyll Apr 21 '11 at 15:03
3

This worked for me:

:set buftype=
:w
mipmip
  • 900
  • 1
  • 8
  • 23
2

Ok, this may not be the most informed answer as I barely have a working knowledge of vim or linux, But I have found to solution to my problem and it may work for you to. To be specific, My problem was twofold:

1) whenever i tried to edit something in this new file i created, i got the Cannot make changes, 'Modifiable' is off error and...

2) after running :set modifiable and trying to save, i would get an e382 error of 'cannot write, buftype is set. so i couldn't save.

After pouring throuch scads of useless cryptic documentation i figured out this:

1) find the .vimviews directory, for me it was at the root of my git repository, do an

ls 

inside it. i got something like this:

~=+www-halo=+test=+lib=+Halo=+Return2=+HeaderTest.php=
~=+www-halo=+test=+lib=+Halo=+Service=+LandmarkTest.php=
~=+www-halo=+test=+lib=+Halo=+Transaction=+AuthnetTest.php=

Which is totally useless to you since you have a different file structure. but look for the file that is giving you the problem. (oh btw, these are in fact file names, which is completely not obvious by looking at them). find the one that has the file in question and delete that sucker: example:

rm ~=+www-halo=+test=+lib=+Halo=+Return2=+HeaderTest.php=

Problem solved.

Dallas Caley
  • 4,027
  • 5
  • 33
  • 53
  • 1
    Have also gotten this problem working with NerdTree. This only worked after exiting the vim session that caused the issue. I'm guessing that it kept resetting this "view". – John Feb 08 '18 at 19:34
2

If you want to happen a file in NERDTree, you need to hit "m" (for menu) then "a". Simply entering "a" in NERDTree buffer will be interpreted as "modify NERDTree buffer". Adding :ma will make NERDTree buffer modifiable, but this wont create new files for you, it will lead to inconsistent info between what NERDTree display and your actual file hierarchy.

0

In case anyone else happens to google to this, check that you're not trying to open a directory in vim like I just was (d'oh)

Rod
  • 44,422
  • 3
  • 32
  • 51
Max Williams
  • 30,785
  • 29
  • 115
  • 186
0

For me, I had stashed changes which included a directory I was then trying to create a file in that dir I had just stashed. NERDTree was still showing the pre-stashed tree with that dir. Using m on a dir that does not exist produced the modifiable error. I should have refreshed the tree with r to see the dir was no longer there and why it could not be modified.

Jadam
  • 991
  • 1
  • 13
  • 30