vim "модифікований" вимкнено


147

Спроба створити новий файл з nerd tree. Я натискаю aклавішу, щоб створити новий файл, і я отримую повідомлення:

E21: Cannot make changes, 'Modifiable' is off

Я використовую MacVim та Janus (майже поза коробкою)


2
fyi: mа потім aдодати новий файл у NERDTree
Лейтон

Відповіді:


233
:set ma

чого коротко

:set modifiable

зробить буфер модифікованим. І

:set noma

робить навпаки.


3
+1 до цієї відповіді. Google показує цю сторінку, коли ви шукаєте спосіб вимкнути прапор, що змінюється, у буфері.
Себастьян Гріньолі

Хто-небудь знає, як я РЕЗУЛЬТАТИ те, що я видалив у NERDTree? як 'dd', а потім я спробував 'u', і нічого не відбувається
betoharres

6
Мені також довелося використовувати :set buftype: " "для написання файлу після модифікації (згодом повідомлення Cannot write, 'buftype' option is set)
Julien Carsique

18

Я не знайомий з NerdTree, але я гадаю, що, ввівши aв подання Нердтрі, це трактується як "я хочу додати щось у буфер nerdtree", і цей буфер не змінюється.

Ви можете перевірити цей відповідь vim та розширення дерева NERD - додавши файл, який пояснює, як додати файл за допомогою Nerdtree.


10
До, це було м, потім а.
wesbos

1
Ось це, перевіривши довідку для NERDTree немає aвідображення, це призведе до того, що він спробує додати новий текст.
sidyll

3

Це працювало для мене:

:set buftype=
:w

що ви думаєте додати після =?
CodeMonkey

Нічого. Це означає присвоїти порожнє значенняbuftype
mipmip

2

Гаразд, це може бути не найінформованішою відповіддю, оскільки я ледве володію знаннями про vim чи linux, але я знайшов рішення своєї проблеми, і це може працювати для вас. Якщо конкретніше, моя проблема була двоякою:

1) кожного разу, коли я намагався щось відредагувати в новому створеному файлі, я не зміг внести зміни, "Modifiable" вимикається помилка і ...

2) після запуску: встановити модифікований і намагаючись зберегти, я отримав би помилку e382 "не можу писати, тип файлу встановлюється. тому я не зміг врятувати.

Після того, як висипали безліч непотрібної криптовалютної документації, я з'ясував це:

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=

Що для вас абсолютно марно, оскільки у вас інша структура файлів. але шукайте файл, який доставляє вам проблему. (О, btw, це насправді імена файлів, що абсолютно не очевидно, дивлячись на них). знайдіть той, що має відповідний файл, і видаліть цей присосок: example:

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

Проблема вирішена.


1
Також отримали цю проблему, працюючи з NerdTree. Це спрацювало лише після виходу із сеансу vim, який спричинив проблему. Я здогадуюсь, що це "перегляд" продовжувало скидати.
Джон

2

Якщо ви хочете, щоб файл стався в NERDTree, вам потрібно натиснути "m" (для меню), а потім "a". Просто введення "a" в буфер NERDTree буде інтерпретуватися як "змінити буфер NERDTree". Додавання: ma зробить буфер NERDTree модифікованим, але це не створить нові файли для вас, це призведе до суперечливої ​​інформації між тим, що відображається NERDTree, і вашою фактичною ієрархією файлів.


0

У випадку, якщо комусь іншому трапляється до Google, перевірте, чи не намагаєтесь ви відкрити каталог у vim, як я щойно був (d'oh)


1
Ви можете відкривати каталоги у Vim. За замовчуванням він запустить Netrw.
htmldrum

Наприклад, ви можете обрати файли в каталозі: cw внести деякі зміни в свої імена та зберегти їх
Karolius

0

Для мене я приховував зміни, які включали в себе каталог, який я намагався створити файл у тому режимі, який я щойно сховав. NERDTree все ще показував заздалегідь складене дерево разом із цим dir. Використання mна dir, який не існує, призвело до зміни помилки. Я мав би оновити дерево, rщоб побачити, що Діра вже немає, і чому його не можна змінити.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.