Jak zapisać plik, nad którym pracujesz, jako nowy plik?

10

Czasami chcę przetestować zmiany w pliku przed nadpisaniem oryginału. Czy mogę zapisać edytowany plik w nowym pliku?

Dom
źródło
Odpowiedzią nie na temat byłoby zasugerowanie VCS. Na przykład przydatny może być indeks git
johannes

Odpowiedzi:

17

Możesz podać parametr do polecenia :wlub, :writeaby zapisać w innym pliku. Na przykład, aby zapisać bieżący bufor w /tmp/data.txt:

:w /tmp/data.txt

Należy jednak pamiętać, że nie powoduje to przełączenia bufora na inny plik. Więc jeśli będziesz kontynuować edycję i po prostu :wto zrobisz, zapisuje się to w bieżącym pliku, a nie w drugim. Aby przełączyć na inny plik, użyj :editpolecenia:

:e /tmp/data.txt

Aby wykonać ten krok, zapisz w innym pliku i przejdź do niego, użyj :saveaspolecenia:

:sav /tmp/data.txt
janos
źródło
5

Vim ma „tryb kopii zapasowej”, który można włączyć za pomocą :set backuplub :set patchmode. W tym trybie Vim automatycznie zachowuje kopię zapasową zapisanych plików.

Na przykład, jeśli wydajesz :set patchmode=.origi edytujesz istniejący plik somefile.txt, to kiedy wydasz :wnormalnie, Vim zachowa kopię starego pliku jako somefile.txt.origi zapisze nową zawartość jako somefile.txt.

200_sukces
źródło
0

Tak, jest sposób. :w new_file_name

Nebril
źródło
0

Po prostu podaj nową ścieżkę do pliku w :wpoleceniu -:w newfile.foo

Zestaw
źródło