Wie speichere ich als neue Datei und arbeite weiter an der Originaldatei in Vim?

362

Immer wenn ich den :savBefehl verwende, speichert er die Datei unter einem neuen Namen und öffnet die neue Datei, die in Vim geöffnet ist.

Ist es möglich, die Datei unter einem neuen Namen zu speichern, aber die ursprüngliche Datei zur Bearbeitung offen zu halten?

vimguy
quelle
13
Ich kam mit der entgegengesetzten Frage.
Cambunctious
4
@ Cambunctious Ich auch. Ich habe gegoogelt vim "save as"und diese Frage hat mich gelehrt, dass es eine gibt :saveas, die genau so funktioniert, wie ich es erwartet hatte: Speichert die vorhandene Datei unter einem neuen Namen und öffnet die neue Datei.
Jacktose

Antworten:

526

Verwenden Sie den :wBefehl mit einem Dateinamen:

:w other_filename
wilhelmtell
quelle
78
Verwenden Sie außerdem :w %:h/other_filename, um in einen Dateinamen im selben Verzeichnis wie die geöffnete Datei zu schreiben.
Loevborg
2
@ Ioevborg wann ist das nicht der Fall? Ich habe nur: w fname ohne Ihren Kommentar zu lesen und das Verhalten scheint die Standardeinstellung zu sein.
Blake
10
@ Cokemonkey11 In vim ist es kein Standardverhalten, wenn der Speicherort der aktuellen Datei mit dem Arbeitsverzeichnis übereinstimmt. Sie haben wahrscheinlich etwas in Ihrer vimrc-Datei, das dies für Sie erledigt. Weitere Informationen finden Sie hier vim.wikia.com/wiki/Set_working_directory_to_the_current_file
Derek
8
Ich habe gerade bestätigt, dass die Datei ohne "%: h /" in dem Verzeichnis gespeichert wird, in dem Sie sich beim Öffnen von vim befanden, nicht dort, wo sich die Originaldatei befand ....
RVC
7
Es kann nützlich sein zu erwähnen, dass nur:w other_filename Daten und nicht die aktuelle Datei geschrieben werden. other_filename
Ram Patra
270

Danke für die Antworten. Jetzt weiß ich, dass es in Vim zwei Möglichkeiten gibt, "SPEICHERN ALS".

Angenommen, ich bearbeite hello.txt.

  • : w world.txt schreibt den Inhalt von hello.txt in die Datei world.txt, während hello.txt als geöffneter Puffer in vim beibehalten wird.
  • : sav world.txt schreibt zuerst den Inhalt von hello.txt in die Datei world.txt, schließt dann den Puffer hello.txt und öffnet schließlich world.txt als aktuellen Puffer.
Jianwen W.
quelle
27
:savDer anfängliche Puffer wird nicht geschlossen, sondern ausgeblendet. Standardmäßig werden versteckte Puffer entladen, dies kann jedoch überschrieben werden (mit den Optionen "versteckt" oder "versteckt").
ZyX
7
Also, ja ... :savist näher an dem "Speichern unter", das ich gekannt habe.
Skytreader
8
Aus Vims Hilfe: :sav[eas][!] [++opt] {file}Also, :sav ist der Shortener für :saveas. Während :wist die Abkürzung für :[range]w[rite][!] [++opt] {file}. Und alles ist im Handbuch, nur wenige Zeilen oben / unten.
Atcold
23

Nach dem Speichern der neuen Datei drücken

Ctrl-6

Dies ist eine Verknüpfung zu einer alternativen Datei

SergioAraujo
quelle
2
Für die Verwendung von nvim 0.1.0 unter OS X 10.10.5 ist SHIFT-CTRL-6 erforderlich.
Aaron Mendez
Shift-Strg-6 auf einer Homebrew-Version von Vim unter OS X 11.
Mateusz Piotrowski
3

Der folgende Befehl erstellt eine Kopie in einem neuen Fenster. So können Sie weiterhin sowohl die Originaldatei als auch die neue Datei sehen.

:w {newfilename} | sp #
tivn
quelle