How should I rename my current file in Vim?
For example:
- I am editing
person.html_erb_spec.rb - I would like it renamed to
person.haml_spec.rb - I would like to continue editing
person.haml_spec.rb
How would I go about doing this, elegantly?
How should I rename my current file in Vim?
For example:
person.html_erb_spec.rbperson.haml_spec.rbperson.haml_spec.rbHow would I go about doing this, elegantly?
The command is called :saveas, but unfortunately it will not delete your old file, you'll have to do that manually. see :help saveas for more info.
EDIT:
Most vim installations have an integrated file explorer, which you can use for such operations. Try :Explore in command mode (I would actually map that to a function key, it's very handy). You can rename files with R or delete them with D, for example. But pressing <F1> in the explorer will give you a better overview.
:w newname - to create a copy.:e#.:!rm oldname.On Windows, the optional 3rd step changes a little:
:!del oldname.For renaming existing file without using plugins you should use command
:Explore
This command allow you explore files in.directory, delete or rename them. than you should navigate to neccessary file in explorer than type R command which will allow you to rename file name
:!mv % %:h/new_name
Register % contains the name of the current file.'%:h'shows the directory 'head' containing the current file, e.g.: %:hreturns /abc/def when your file full path is abc/def/my.txt
I don't know if this is the "easiest" method, but assuming you've already saved your file (:w) I would invoke the shell (:sh) and do a simple cp foo foo.bak To go back to editor use Ctrl-D/Exit. Useful list of vi editor commands on this link
:h rename() is by far the easiest and cleanest method.
Just call it
:call rename("oldname", "newnane")