vim "modifizierbar" ist ausgeschaltet


146

Es wird versucht, eine neue Datei mit einem Nerd-Baum zu erstellen. Ich drücke die aTaste, um eine neue Datei zu erstellen und erhalte die Nachricht:

E21: Cannot make changes, 'Modifiable' is off

Ich benutze MacVim und Janus (fast sofort einsatzbereit)


2
fyi: mund dann aist eine neue Datei in NERDTree
Leighton

Antworten:


232
:set ma

das ist die Abkürzung für

:set modifiable

macht einen Puffer modifizierbar. Und

:set noma

macht das Gegenteil.


3
+1 auf diese Antwort. Google zeigt diese Seite an, wenn Sie nach einer Möglichkeit suchen, das veränderbare Flag in einem Puffer zu deaktivieren.
Sebastián Grignoli

Weiß jemand, wie ich rückgängig machen kann, was ich in NERDTree gelöscht habe? wie 'dd' und dann habe ich versucht 'u' und nichts passiert
betoharres

6
Ich musste auch :set buftype: " "zum Schreiben der Datei nach der Änderung verwenden (danach war Nachricht Cannot write, 'buftype' option is set)
Julien Carsique

18

Ich bin mit NerdTree nicht vertraut, aber ich denke, dass durch Eingabe ain eine Nerdtree-Ansicht diese als "Ich möchte etwas in den Nerdtree-Puffer anhängen" interpretiert wird und dieser Puffer nicht geändert werden kann.

Sie können diese Antwort vim und die NERD Tree-Erweiterung überprüfen. Fügen Sie eine Datei hinzu, in der erläutert wird, wie Sie eine Datei mit Nerdtree hinzufügen.


10
Doh, es war m, dann a.
Wesbos

1
Wenn Sie die Hilfe für NERDTree überprüfen, gibt es keine aZuordnung, wodurch versucht wird, neuen Text anzuhängen .
Sidyll


2

Ok, dies ist möglicherweise nicht die am besten informierte Antwort, da ich kaum Kenntnisse über Vim oder Linux habe. Aber ich habe eine Lösung für mein Problem gefunden und es könnte für Sie funktionieren. Um genau zu sein, mein Problem war zweifach:

1) Wann immer ich versuchte, etwas in dieser neuen Datei zu bearbeiten, die ich erstellt habe, bekam ich die Option Kann keine Änderungen vornehmen, 'Modifizierbar' ist aus Fehler und ...

2) nach dem Ausführen: set modifizierbar und versuchen zu speichern, würde ich einen e382 Fehler von 'kann nicht schreiben, Buftype ist gesetzt. also konnte ich nicht retten.

Nachdem ich unzählige nutzlose kryptische Dokumentationen eingegossen hatte, fand ich Folgendes heraus:

1) finde das .vimviews-Verzeichnis, für mich war es im Stammverzeichnis meines Git-Repositorys, mache ein

ls 

im Inneren. Ich habe so etwas:

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

Was für Sie völlig nutzlos ist, da Sie eine andere Dateistruktur haben. Suchen Sie jedoch nach der Datei, die das Problem verursacht. (Übrigens, das sind tatsächlich Dateinamen, was bei Betrachtung nicht ganz offensichtlich ist). Suchen Sie die Datei mit der betreffenden Datei und löschen Sie den Trottel: Beispiel:

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

Problem gelöst.


1
Habe auch dieses Problem bei der Arbeit mit NerdTree bekommen. Dies funktionierte erst nach dem Beenden der vim-Sitzung, die das Problem verursacht hat. Ich vermute, dass diese "Ansicht" immer wieder zurückgesetzt wurde.
John

2

Wenn Sie eine Datei in NERDTree erstellen möchten, müssen Sie "m" (für Menü) und dann "a" drücken. Die einfache Eingabe von "a" in den NERDTree-Puffer wird als "NERDTree-Puffer ändern" interpretiert. Durch Hinzufügen von: ma kann der NERDTree-Puffer geändert werden. Dadurch werden jedoch keine neuen Dateien für Sie erstellt. Dies führt zu inkonsistenten Informationen zwischen der Anzeige von NERDTree und Ihrer tatsächlichen Dateihierarchie.


0

Falls jemand anderes dies googelt, überprüfen Sie, ob Sie nicht versuchen, ein Verzeichnis in vim zu öffnen, wie ich es gerade war (d'oh).


1
Sie können Verzeichnisse in Vim öffnen. Standardmäßig wird Netrw gestartet.
htmldrum

Sie können zum Beispiel Dateien in einem Verzeichnis auswählen ,: cw einige Änderungen an ihren Namen vornehmen und speichern
Karolius

0

Für mich hatte ich Änderungen gespeichert, einschließlich eines Verzeichnisses, in dem ich versuchte, eine Datei in dem Verzeichnis zu erstellen, das ich gerade gespeichert hatte. NERDTree zeigte immer noch den vorversteckten Baum mit diesem Verzeichnis. Die Verwendung min einem nicht vorhandenen Verzeichnis führte zu dem veränderbaren Fehler. Ich hätte den Baum mit aktualisieren sollen, um rzu sehen, dass das Verzeichnis nicht mehr vorhanden war und warum es nicht geändert werden konnte.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.