Ich habe schon viel danach gesucht und jede Antwort bezieht sich auf Vim unter Linux. Gibt es eine Möglichkeit, eine schreibgeschützte Datei direkt von Vim in Windows zu speichern?
Ich habe schon viel danach gesucht und jede Antwort bezieht sich auf Vim unter Linux. Gibt es eine Möglichkeit, eine schreibgeschützte Datei direkt von Vim in Windows zu speichern?
Antworten:
Wie bei anderen vi / vim-Versionen können Sie :w!
das Schreiben erzwingen, sofern Sie über Berechtigungen zum Überschreiben der schreibgeschützten Eigenschaft verfügen.
Wenn Sie die Datei beispielsweise als schreibgeschützt festgelegt haben, funktioniert das oben Gesagte. Wenn Windows selbst oder ein Administrator es schreibgeschützt festgelegt hat, benötigen Sie eine andere Option.
Wie @ dash-tom-bang kommentierte, ist ein gutes Beispiel Programmdateien, in denen Dateien standardmäßig geschützt sind. In diesem Microsoft Knowledgebase-Artikel wird erläutert, wie dies in der Praxis funktioniert.
gvim
als zu öffnen Run as Administrator
? Vielleicht würde es Ihren Zweck lösen ... oder auf andere Weise könnte es sein, dass die Datei von einer anderen Anwendung gesperrt wird ...
run as administrator
, um seinen Unterprozess mit administrativen Aufgaben abzuschließen ... Bitte werfen Sie einen Blick auf windows.microsoft.com/en-in/windows/… .... andernfalls deaktivieren Sie die UAC
Einstellungen ... .
:w!
funktioniert beispielsweise nicht und Sie müssen gVim als Administrator ausführen oder Vim an einer Eingabeaufforderung ausführen, die als Administrator ausgeführt wurde.
Sie können mein SudoEdit- Plugin verwenden.
Es gibt eine andere Möglichkeit, die in den anderen Antworten nicht angesprochen wurde: vim weigert sich, eine Datei zu speichern, wenn sie von einer anderen Windows-Anwendung geöffnet und gesperrt wird. Viele normale Windows-Apps (z. B. Office) sperren geöffnete Dateien. Wenn dies das Problem ist, keine Unordnung mit Berechtigungen oder: w! wird dir helfen. Sie müssen lediglich die Datei in der anderen App schließen und können sie dann von vim speichern. Es ist bedauerlich, dass vim dem Benutzer diese Situation nicht eindeutig signalisiert.
Für win7: Start> Ausführen> Befehl (als Administrator) und führen Sie diese Befehle aus, um den Verzeichnisbaum für den Administrator beschreibbar zu machen:
cd parent/folder
:: /f file, /a admin, /r recurse, /d y = nopromt
takeown /F . /A /R /D Y > nul:
:: /t /q /c .. traverse quiet continue
icacls . /t /q /c /reset
icacls . /t /q /c /grant :r Everyone:F
icacls . /t /q /c /setowner Administrators
Führen Sie gVim als Administrator aus, z. B. indem Sie mit der rechten Maustaste auf die Tastenkombination gVim in Ihrem Startmenü klicken oder die Tastenkombination Shift+ verwenden F10und als Administrator ausführen auswählen .
Öffnen Sie die Datei, die Sie bearbeiten möchten, und speichern Sie Ihre Änderungen :w
wie gewohnt.
Geben Sie :f "newfilename"
dann beim Verlassen :w
den Befehlsmodus ein , um unter dem neuen Dateinamen zu speichern.
:w!
funktioniert aber nicht. Es heißt, dass die Datei nicht zum Lesen geöffnet werden kann. Obwohl ich außerhalb von vim genau das Gleiche tun kann.