Antworten:
:set ma
das ist die Abkürzung für
:set modifiable
macht einen Puffer modifizierbar. Und
:set noma
macht das Gegenteil.
:set buftype: " "
zum Schreiben der Datei nach der Änderung verwenden (danach war Nachricht Cannot write, 'buftype' option is set
)
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.
a
Zuordnung, wodurch versucht wird, neuen Text anzuhängen .
Das hat bei mir funktioniert:
:set buftype=
:w
=
?
buftype
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.
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.
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).
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 m
in einem nicht vorhandenen Verzeichnis führte zu dem veränderbaren Fehler. Ich hätte den Baum mit aktualisieren sollen, um r
zu sehen, dass das Verzeichnis nicht mehr vorhanden war und warum es nicht geändert werden konnte.
m
und danna
ist eine neue Datei in NERDTree