如何保存为新文件并继续在Vim中处理原始文件?


362

每当我使用 :sav命令时,它新名称保存文件并打开在Vim中打开的新文件。

是否可以用新名称保存文件,但保持原始名称可打开以进行编辑?


13
我提出了相反的问题。
雄辩的

4
@赞美我也是。我正在谷歌上搜索vim "save as",这个问题告诉我,有一个功能:saveas与我预期的一样:用新名称保存现有文件并打开新文件。
Jacktose

Answers:


526

:w命令与文件名一起使用:

:w other_filename

78
此外,用于:w %:h/other_filename写入与打开文件位于同一目录中的文件名。
loevborg

2
@Ioevborg何时不是这种情况?我只是:w fname而没有阅读您的评论,该行为似乎是默认的。
布雷克2014年

10
@ Cokemonkey11 vim中的默认行为不是使当前文件的位置与工作目录相同。您的vimrc文件中可能有某些为您执行的操作。一些更多的信息可以在这里找到vim.wikia.com/wiki/Set_working_directory_to_the_current_file
Derek

8
我只是确认没有“%:h /”文件将被保存在打开vim时的目录中,而不是原始文件所在的目录中
。.– RVC

7
提及:w other_filenameother_filename 写入数据而不写入当前文件的数据可能会很有用。
拉姆·帕特拉

270

感谢您的回答。现在我知道在Vim中有两种“另存为”的方式。

假设我正在编辑hello.txt。

  • :w world.txt 会将hello.txt的内容写入文件world.txt,同时保持hello.txt作为vim中打开的缓冲区。
  • :sav world.txt将首先将hello.txt的内容写入文件world.txt,然后关闭缓冲区hello.txt,最后打开world.txt作为当前缓冲区。

27
:sav不会关闭初始缓冲区,它将隐藏它。默认情况下,隐藏的缓冲区会被卸载,但是可以覆盖(使用“ hidden”或“ bufhidden”选项)。
ZyX 2012年

7
所以,是的... :sav更接近于我所知道的“另存为”。
skytreader 2014年

8
从Vim的帮助::sav[eas][!] [++opt] {file}那么,:sav 为缩短服务:saveas。然而,:w对于快捷方式:[range]w[rite][!] [++opt] {file}。一切都在手册中,上下仅几行。
2014年


3

以下命令将在新窗口中创建一个副本。因此,您可以继续查看原始文件和新文件。

:w {newfilename} | sp #
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.