There are times when I want to test changes to a file before I overwrite the original. Is there any way I can save a file being edited to a new file?

  • The off-topic answer would be to suggest a VCS. For instance git's index might be useful – johannes Feb 4 '15 at 0:52

You can give a parameter to the :w or :write command to save to a different file. For example to save the current buffer to /tmp/data.txt:

:w /tmp/data.txt

However, keep in mind that this does not switch your buffer to that other file. So if you keep editing and do just :w, that will save to the current file, not to the other one. To switch to the other file, use the :edit command:

:e /tmp/data.txt

To do this one step, save to another file and switch to it, use the :saveas command:

:sav /tmp/data.txt
| improve this answer | |

Vim has a "backup mode" that can be enabled by :set backup or :set patchmode. In that mode, Vim automatically keeps a backup copy of files that you write.

For example, if you issue :set patchmode=.orig, and you edit an existing file somefile.txt, then when you issue :w normally, Vim will keep a copy of the old file as somefile.txt.orig and save the new contents as somefile.txt.

| improve this answer | |

Yes, there is a way. :w new_file_name

| improve this answer | |

Simply specify a newfilepath at the :w command - :w newfile.foo

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.