ChatGPT解决这个技术问题 Extra ChatGPT

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

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

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

我提出了相反的问题。
@cambunctious 我也是。我在谷歌上搜索 vim "save as",这个问题告诉我有一个 :saveas 可以像我预期的那样工作:用新名称保存现有文件并打开新文件。
伟大的补充!顺便说一句,您可以简称为 :sav,在覆盖现有文件时也有 :sav!

w
wilhelmtell

使用带有文件名的 :w 命令:

:w other_filename

此外,使用 :w %:h/other_filename 写入与打开文件位于同一目录中的文件名。
@Ioevborg 什么时候不是这样?我只是 :w fname 没有阅读您的评论,并且该行为似乎是默认行为。
@Cokemonkey11 让当前文件的位置与工作目录相同不是 vim 的默认行为。您的 vimrc 文件中可能有一些东西正在为您执行此操作。可以在此处找到更多信息vim.wikia.com/wiki/Set_working_directory_to_the_current_file
我刚刚确认,如果没有“%:h/”,文件将保存在您打开 vim 时所在的目录中,而不是原始文件所在的目录中......
提及 :w other_filename而不是当前文件写入数据可能会很有用。
J
Jianwen W.

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

假设我正在编辑 hello.txt。

:w world.txt 会将 hello.txt 的内容写入文件 world.txt,同时将 hello.txt 作为 vim 中打开的缓冲区。

:sav world.txt 会先将 hello.txt 的内容写入文件 world.txt,然后关闭缓冲区 hello.txt,最后打开 world.txt 作为当前缓冲区。


:sav 不会关闭初始缓冲区,它会隐藏它。默认情况下,隐藏缓冲区被卸载,但这可以被覆盖(使用 'hidden' 或 'bufhidden' 选项)。
所以,是的...:sav 更接近我所知道的“另存为”。
在 Vim 的帮助下::sav[eas][!] [++opt] {file} 所以,:sav :saveas 的缩短器。而 :w:[range]w[rite][!] [++opt] {file} 的快捷方式。一切都在手册中,上面/下面只有几行。
S
SergioAraujo

保存新文件后按

Ctrl-6

这是备用文件的快捷方式


对于它的价值,在 OS X 10.10.5 下使用 nvim 0.1.0,这需要 SHIFT-CTRL-6。
在 OS X 11 上的 Vim 的 Homebrew 版本上使用 shift-ctrl-6。
t
tivn

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

:w {newfilename} | sp #