我应该如何重命名我的当前文件在Vim?

例如:

我正在编辑person.html_erb_spec.rb 我希望它重命名为person.haml_spec.rb 我想继续编辑person.haml_spec.rb

我该如何优雅地做这件事呢?


当前回答

如果文件已经保存:

:!mv {file location} {new file location}
:e {new file location}

例子:

:!mv src/test/scala/myFile.scala src/test/scala/myNewFile.scala
:e src/test/scala/myNewFile.scala

权限要求:

:!sudo mv src/test/scala/myFile.scala src/test/scala/myNewFile.scala

保存为:

:!mv {file location} {save_as file location}
:w
:e {save_as file location} 

Windows未验证

:!move {file location} {new file location}
:e {new file location}

其他回答

我不知道这是否是“最简单”的方法,但假设你已经保存了你的文件(:w),我会调用shell (:sh)并做一个简单的cp foo foo.bak返回编辑器使用Ctrl-D/Exit。 此链接上的vi编辑器命令的有用列表

:sav newfile | !rm #

注意,它不会从缓冲区列表中删除旧文件。如果这对你来说很重要,你可以使用以下方法:

:sav newfile | bd# |

sav person.haml_spec.rb | call delete(expand('#'))

你也可以使用netw

explore命令在打开文件的目录中打开netrw

:E

将光标移到需要重命名的文件上:

R

输入新名字,回车,按y。

:h rename()是迄今为止最简单、最干净的方法。 就叫它吧 :调用重命名("oldname", "newnane")