Wie erstelle ich eine Datei mit VIM neu?

2

Ich habe myfile.txtmit etwas Text. Wenn ich tippe vim myfile.txt, öffnet es die Datei. Gibt es einen Parameter, mit dem vim die alte Datei löschen und eine leere neue erstellen kann? Zum Beispiel

vim -recreate myfile.txt

Oder wird eine solche Funktionalität nicht unterstützt?

Kirsche
quelle
Alles wird in Vim unterstützt. Sie wissen, dass Sie den gesamten Text in der Datei mit 5 Tastenanschlägen löschen können, wenn Sie in vim sind, richtig?
Aviator45003
3
Nachdem Sie vim gestartet haben, geben Sie einfach Folgendes ein dG: Dies wird von der Cursorposition bis zum Ende der Datei gelöscht und tatsächlich geleert. Wenn Ihr vim so konfiguriert ist, dass der Cursor an die Stelle gesetzt wird, an der Sie die Datei zuletzt bearbeitet haben, müssen Sie anstelle der ersten Zeile die erste Zeile voranstellen 1G. 1GdGist noch weniger zu tippen als -recreate.
Guntram Blohm
@GuntramBlohm Ich wollte das als Antwort posten, aber ich sehe, dass du mich geschlagen hast. Sie sollten mit Ihrem Kommentar antworten. :)
user50849
Es ist eine Problemumgehung, keine Antwort, also habe ich es kommentiert. Wenn die Datei wirklich riesig ist, wird das Laden in vim viel Zeit in Anspruch nehmen. @ JakeGoulds Antwort, die ich akzeptieren würde, wenn ich der OP wäre, löst das Problem viel schneller.
Guntram Blohm

Antworten:

3

Nicht wirklich. Sie könnten so etwas tun; eine zusammengesetzte Befehlszeilenanweisung:

> myfile.txt && vim myfile.txt

Das > myfile.txtlöscht den Inhalt der Datei - lässt aber die eigentliche Datei an Ort und Stelle - und &&bindet dann diesen Befehl an vim myfile.txt.

JakeGould
quelle
2

Zum Löschen der Datei können Sie Folgendes verwenden:

$ vim +%d +w file

Aber das ist keine Neuerstellung (Datei entfernen und neue erstellen), eine Datei bleibt gleich (gleich inode). Ich denke, es gibt keinen Unterschied für dich, oder?

Wenn ich falsch liege und Sie eine neue Datei benötigen, müssen Sie leider die Shell verwenden und rm:

$ rm file && vim +w file
Dmitry Alexandrov
quelle