Renaming files when you are coding can be a time consuming and annoying chore. You just want to get it over with quickly so that you can get back to your real work.

This is how I used to do it:

1. suspend vim to get to the terminal 2. mv lib/old_file.txt lib/new_file.txt 3. resume vim 4. notice warning about file no longer existing 5. open the new file

A Faster Way

I found this handy vim function in Gary Bernhardt's .vimrc:

function ! RenameFile () let old_name = expand ( '%' ) let new_name = input ( 'New file name: ' , expand ( '%' ), 'file' ) if new_name != '' && new_name != old_name exec ':saveas ' . new_name exec ':silent !rm ' . old_name redraw ! endif endfunction map < leader > r : call RenameFile ()< cr >

Once you have that in your .vimrc , renaming a file becomes much simpler. You don't even have to leave vim:

1. <leader>r 2. correct filename 3. press enter

Congrats. You just sharpened your tools and saved yourself a few seconds per day.