【问题标题】:How to save as a new file and keep working on the original one in Vim?如何保存为新文件并在 Vim 中继续处理原始文件?
【发布时间】:2011-06-26 04:41:05
【问题描述】:

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

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

【问题讨论】:

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

标签: vim save save-as


【解决方案1】:

使用带有文件名的: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 将数据写入other_filename而不是当前文件可能很有用。
【解决方案2】:

感谢您的回答。现在我知道 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 不会关闭初始缓冲区,它会隐藏它。默认情况下,隐藏缓冲区被卸载,但可以覆盖(使用“隐藏”或“bufhidden”选项)。
  • 所以,是的...:sav 更接近我所知道的“另存为”。
  • 来自 Vim 的帮助::sav[eas][!] [++opt] {file} 所以,:sav :saveas 的缩写。而:w:[range]w[rite][!] [++opt] {file} 的快捷方式。一切都在手册中,上面/下面只有几行。
【解决方案3】:

保存新文件后按

Ctrl-6

这是备用文件的快捷方式

【讨论】:

  • 对于它的价值,在 OS X 10.10.5 下使用 nvim 0.1.0,这需要 SHIFT-CTRL-6。
  • shift-ctrl-6 在 OS X 11 上的 Vim 的 Homebrew 版本上。
【解决方案4】:

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

:w {newfilename} | sp #

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-04-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多