vim "modifiable" is off

110,364

Solution 1

:set ma

which is short for

:set modifiable

will make a buffer modifiable. And

:set noma

does the opposite.

Solution 2

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

You can check out this answer vim and NERDTree extension - adding a file which explains how to add a file with NERDTree.

Solution 3

This worked for me:

:set buftype=
:w

Solution 4

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.

Solution 5

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.

Share:
110,364

Related videos on Youtube

wesbos
Author by

wesbos

Author of Sublime Text Book HTML5, JavaScript, Sublime Text, Node.js, CSS3 and all good things.

Updated on March 23, 2022

Comments

  • wesbos
    wesbos about 2 years

    I am trying to create a new file with NERDTree. 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 with Janus (almost out of the box).

    • Leighton
      Leighton almost 6 years
      fyi: m and then a is to add a new file in NERDTree
  • sidyll
    sidyll about 13 years
    That's it, checking the help for NERDTree there is no a mapping, which will cause it to try appending new text.
  • Sebastián Grignoli
    Sebastián Grignoli over 11 years
    +1 to this answer. Google shows this page when you search for the way to turn off the modifiable flag in a buffer.
  • htmldrum
    htmldrum about 11 years
    You can open directories in Vim. By default it will launch Netrw.
  • betoharres
    betoharres over 9 years
    Does anyone knows how do I UNDO what I deleted in NERDTree? like 'dd' and then I tried to 'u' and nothing happens
  • Julien Carsique
    Julien Carsique almost 8 years
    I also had to use :set buftype: " " for writing the file after modification (afterwards message was Cannot write, 'buftype' option is set)
  • John
    John over 6 years
    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".
  • Karolius
    Karolius over 4 years
    You can for example select files in a directory, :cw do some changes to their names and save it
  • Mohamed Ali
    Mohamed Ali almost 4 years
    what are you suppose to add after the = ?
  • mipmip
    mipmip almost 4 years
    Nothing. This means asign an empty value to buftype