ChatGPT解决这个技术问题 Extra ChatGPT

How to save as a new file and keep working on the original one in Vim?

Whenever I use the :sav command, it saves the file with a new name and opens the new file open in Vim.

Is it possible to save the file with a new name but keep the original one open for editing?

I came with the opposite question.
@cambunctious Me too. I was googling vim "save as" and this question taught me that there is a :saveas that works just like I expected: saves the existing file with a new name and opens the new file.
Great addition! By the way, you can do :sav for short and there's also :sav! when overwriting an existing file.

w
wilhelmtell

Use the :w command with a filename:

:w other_filename

Furthermore, use :w %:h/other_filename to write to a filename in the same directory as the open file.
@Ioevborg when is that not the case? I just :w fname without reading your comment and the behavior seems to be the default.
@Cokemonkey11 It's not default behavior in vim to have the current file's location be the same as the working directory. You probably have something in your vimrc file that is doing this for you. Some more information can be found here vim.wikia.com/wiki/Set_working_directory_to_the_current_file
I just confirmed that without the "%:h/" the file will be saved in the directory you were in when you opened vim, not where the original file was....
It may be useful to mention that :w other_filename will write data to other_filename only and not the current file.
J
Jianwen W.

Thanks for the answers. Now I know that there are two ways of "SAVE AS" in Vim.

Assumed that I'm editing hello.txt.

:w world.txt will write hello.txt's content to the file world.txt while keeping hello.txt as the opened buffer in vim.

:sav world.txt will first write hello.txt's content to the file world.txt, then close buffer hello.txt, finally open world.txt as the current buffer.


:sav won’t close initial buffer, it will hide it. By default, hidden buffers are unloaded, but this can be overriden (with 'hidden' or 'bufhidden' options).
So, yeah...:sav is closer to the "Save as" I've known.
From Vim's help: :sav[eas][!] [++opt] {file} So, :sav is the shortener for :saveas. Whereas, :w is the shortcut for :[range]w[rite][!] [++opt] {file}. And everything is in the manual, just few lines above/below.
S
SergioAraujo

After save new file press

Ctrl-6

This is shortcut to alternate file


For what it's worth, using nvim 0.1.0 under OS X 10.10.5, this requires SHIFT-CTRL-6.
shift-ctrl-6 on a Homebrew version of Vim on OS X 11.
t
tivn

The following command will create a copy in a new window. So you can continue see both original file and the new file.

:w {newfilename} | sp #