If you use git and already have the tpope's plugin fugitive.vim then simply:
:Gmove newname
This will:
- Rename your file on disk.
- Rename the file in git repo.
- Reload the file into the current buffer.
- Preserve undo history.
If your file was not yet added to a git repo then first add it:
:Gwrite