Jak zapisać jako nowy plik i kontynuować pracę nad oryginalnym plikiem w Vimie?

362

Ilekroć korzystam z :sav polecenia, zapisuje plik pod nową nazwą i otwiera nowy plik otwarty w Vimie.

Czy można zapisać plik pod nową nazwą, ale zachować oryginalny do edycji?

Vimguy
źródło
13
Przyszedłem z odwrotnym pytaniem.
kambuzowy
4
@cambunctious Me also. Byłem google vim "save as"i to pytanie nauczyło mnie, że istnieje taki, :saveasktóry działa tak, jak się spodziewałem: zapisuje istniejący plik pod nową nazwą i otwiera nowy plik.
Jacktose

Odpowiedzi:

526

Użyj :wpolecenia z nazwą pliku:

:w other_filename
wilhelmtell
źródło
78
Ponadto użyj :w %:h/other_filenamedo zapisu do nazwy pliku w tym samym katalogu, co otwarty plik.
loevborg
2
@Ioevborg, kiedy tak nie jest? Po prostu: w fname bez czytania twojego komentarza, a zachowanie wydaje się być domyślne.
Blake,
10
@ Cokemonkey11 Nie jest domyślnym zachowaniem w vimie, aby położenie bieżącego pliku było takie samo jak katalogu roboczego. Prawdopodobnie masz coś w swoim pliku vimrc, który robi to za Ciebie. Więcej informacji można znaleźć tutaj vim.wikia.com/wiki/Set_working_directory_to_the_current_file
Derek
8
Właśnie potwierdziłem, że bez "%: h /" plik zostanie zapisany w katalogu, w którym byłeś podczas otwierania vima, a nie tam, gdzie był oryginalny plik ....
RVC
7
Warto wspomnieć, że :w other_filenamezapisuje dane other_filename tylko w bieżącym pliku, a nie w bieżącym pliku.
Ram Patra
270

Dziękuję za odpowiedzi. Teraz wiem, że istnieją dwa sposoby „ZAPISZ JAKO” w Vimie.

Zakładam, że edytuję hello.txt.

  • : w world.txt zapisze zawartość hello.txt w pliku world.txt, zachowując hello.txt jako otwarty bufor w vimie.
  • : sav world.txt najpierw zapisze zawartość hello.txt w pliku world.txt, następnie zamknie bufor hello.txt, w końcu otworzy world.txt jako bieżący bufor.
Jianwen W.
źródło
27
:savnie zamknie początkowego bufora, ukryje go. Domyślnie ukryte bufory są rozładowywane, ale można to zmienić (z opcjami „ukryte” lub „ukryte”).
ZyX
7
Więc tak ... :savjest bliżej znanego mi „Zapisz jako”.
skytreader
8
Z pomocy Vima: :sav[eas][!] [++opt] {file}Tak więc :sav jest skrótem do :saveas. Natomiast :wskrót to :[range]w[rite][!] [++opt] {file}. I wszystko jest w instrukcji, tylko kilka linii powyżej / poniżej.
Atcold,
23

Po zapisaniu nowego pliku naciśnij

Ctrl-6

To jest skrót do alternatywnego pliku

SergioAraujo
źródło
2
Do tego, co jest warte, użycie nvim 0.1.0 w OS X 10.10.5, wymaga SHIFT-CTRL-6.
Aaron Mendez
shift-ctrl-6 w Homebrew wersji Vima na OS X 11.
Mateusz Piotrowski
3

Następujące polecenie utworzy kopię w nowym oknie. Możesz więc nadal widzieć zarówno oryginalny plik, jak i nowy plik.

:w {newfilename} | sp #
tivn
źródło