vim „modyfikowalny” jest wyłączony

147

Próbuję utworzyć nowy plik z drzewem nerdów. Naciskam aklawisz, aby utworzyć nowy plik i otrzymuję komunikat:

E21: Cannot make changes, 'Modifiable' is off

Używam MacVim i Janus (prawie po wyjęciu z pudełka)

wesbos
źródło
2
fyi: ma następnie ama dodać nowy plik w NERDTree
Leighton

Odpowiedzi:

233
:set ma

co jest skrótem od

:set modifiable

sprawi, że bufor będzie można modyfikować. I

:set noma

robi odwrotnie.

Adam Soltys
źródło
3
+1 do tej odpowiedzi. Google wyświetla tę stronę, gdy szukasz sposobu na wyłączenie modyfikowalnej flagi w buforze.
Sebastián Grignoli,
Czy ktoś wie, jak Cofnąć to, co usunąłem w NERDTree? jak „dd”, a potem próbowałem „u” i nic się nie dzieje
betoharres
6
Musiałem też użyć :set buftype: " "do zapisu pliku po modyfikacji (później była wiadomość Cannot write, 'buftype' option is set)
Julien Carsique
18

Nie znam NerdTree, ale myślę, że pisząc a w widoku nerdtree, jest on interpretowany jako „Chcę dodać coś do bufora nerdtree”, a bufora tego nie można modyfikować.

Możesz sprawdzić odpowiedź vim i rozszerzenie drzewa NERD - dodanie pliku wyjaśniającego, jak dodać plik za pomocą Nerdtree.

Xavier T.
źródło
10
Doh, to było m, potem a.
wesbos
1
To wszystko, sprawdzając pomoc dla NERDTree nie ma amapowania, co spowoduje, że spróbuje dołączyć nowy tekst.
sidyll
3

To zadziałało dla mnie:

:set buftype=
:w
mipmip
źródło
co masz dodać po =?
CodeMonkey
Nic. Oznacza to przypisanie pustej wartościbuftype
mipmip
2

Ok, może to nie być najbardziej świadoma odpowiedź, ponieważ ledwo mam praktyczną wiedzę o vimie lub linuksie, ale znalazłem rozwiązanie mojego problemu i może to zadziałać. Mówiąc konkretnie, mój problem był dwojaki:

1) za każdym razem, gdy próbowałem edytować coś w tym nowym pliku, który utworzyłem, otrzymałem komunikat Nie można wprowadzać zmian, komunikat „Modyfikowalny” jest wyłączony i ...

2) po uruchomieniu: ustaw modyfikowalny i próbując zapisać, otrzymam błąd e382 „nie można pisać, ustawiony jest bufor typu. więc nie mogłem zapisać.

Po wlaniu fragmentów bezużytecznej, tajemniczej dokumentacji, doszedłem do tego:

1) znajdź katalog .vimviews, dla mnie był to katalog główny mojego repozytorium git, wykonaj

ls 

w środku tego. mam coś takiego:

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

Co jest dla Ciebie całkowicie bezużyteczne, ponieważ masz inną strukturę plików. ale poszukaj pliku, który powoduje problem. (a tak przy okazji, są to w rzeczywistości nazwy plików, co nie jest wcale oczywiste, patrząc na nie). znajdź ten, który ma ten plik i usuń ten frajer: przykład:

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

Problem rozwiązany.

Dallas Caley
źródło
1
Otrzymałem również ten problem podczas pracy z NerdTree. To działało tylko po wyjściu z sesji vima, która spowodowała problem. Domyślam się, że ciągle resetował ten „widok”.
John
2

Jeśli chcesz zrobić plik w NERDTree, musisz nacisnąć "m" (menu), a następnie "a". Samo wpisanie „a” w buforze NERDTree zostanie zinterpretowane jako „zmodyfikuj bufor NERDTree”. Dodanie: ma uczyni bufor NERDTree modyfikowalnym, ale to nie utworzy dla ciebie nowych plików, doprowadzi to do niespójności informacji między tym, co wyświetla NERDTree, a twoją rzeczywistą hierarchią plików.

Jeremy Fouriaux
źródło
0

Na wypadek gdyby ktoś inny wyszukał to w Google, sprawdź, czy nie próbujesz otworzyć katalogu w vimie, tak jak ja (d'oh)

Max Williams
źródło
1
Możesz otwierać katalogi w Vimie. Domyślnie uruchomi Netrw.
htmldrum
Możesz na przykład wybrać pliki w katalogu
,: cw wprowadź
0

Dla mnie zachowałem zmiany, które obejmowały katalog, w którym próbowałem utworzyć plik w tym katalogu, który właśnie schowałem. NERDTree nadal pokazywał wcześniej ułożone drzewo z tym reż. Użycie mna katalogu, który nie istnieje, spowodowało modyfikowalny błąd. Powinienem był odświeżyć drzewo, raby zobaczyć, że reż już nie istnieje i dlaczego nie można go zmodyfikować.

Jadam
źródło