Ответы:
:set ma
что коротко для
:set modifiable
сделает буфер модифицируемым. И
:set noma
делает обратное.
:set buftype: " "
для записи файла после модификации (впоследствии сообщение было Cannot write, 'buftype' option is set
)
Я не знаком с NerdTree, но я предполагаю, что при вводе aв представление nerdtree это интерпретируется как «я хочу добавить что-то в буфер nerdtree», и этот буфер не может быть изменен.
Вы можете проверить этот ответ vim и расширение NERD Tree - добавив файл, который объясняет, как добавить файл с помощью Nerdtree.
a
сопоставления, которое заставит его попробовать добавить новый текст.
Это сработало для меня:
:set buftype=
:w
=
?
buftype
Ладно, это может быть не самый информированный ответ, так как у меня едва есть опыт работы с 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=
Задача решена.
Если вы хотите получить файл в NERDTree, вам нужно нажать «m» (для меню), затем «a». Простое введение «a» в буфер NERDTree будет интерпретироваться как «изменить буфер NERDTree». Добавление: ma сделает буфер NERDTree модифицируемым, но это не создаст новые файлы для вас, это приведет к противоречивой информации между тем, что отображает NERDTree, и вашей фактической иерархией файлов.
В случае, если кто-то еще столкнется с Google, проверьте, что вы не пытаетесь открыть каталог в vim, как я только что (d'oh)
Для меня я спрятал изменения, которые включали каталог, который я тогда пытался создать файл в том каталоге, который я только что спрятал. NERDTree все еще показывал предварительно спрятанное дерево с этим режиссером. Использование m
несуществующего каталога приводит к изменяемой ошибке. Мне следовало обновить дерево, r
чтобы увидеть, что его больше нет, и почему его нельзя изменить.
m
а затемa
добавить новый файл в NERDTree