vimr is a terminal-based file rename utility that lets you easily mass-rename files using Vim. It also supports recursive renaming in subfolders.
- For the current user:
curl https://raw.githubusercontent.com/picakia/vimr/master/vimr > ~/bin/vimr && chmod +755 ~/bin/vimr
- For the current system:
sudo PREFIX=/usr/local make install
Or simply copy the vimr
file to a location in your $PATH
and make it executable.
- Go to a directory and enter
vimr
with optionally, a list of files to rename or -p [pattern] parameter. - A Vim window will be opened with names of all files in directory or with all files marching pattern even in subdirectories.
- Use Vim's text editing features to edit the names of files. For example, search and replace a particular string, or use visual selection to delete a block.
- Save and exit. Your files should be renamed now.
- If you want to list only a group of files, you can pass them as an argument. eg:
vimr *.mp4
- If you want to perform recursive rename just pass -p PATTERN parameter to vimr and it will list all files matching that pattern including these in subdirectories. (PATTERN can be "*" if you want all files in all dirs)
- If you have an
$EDITOR
environment variable set, vimr will use its value by default. - If you are inside a Git directory, vimr will use
git mv
(instead ofmv
) to rename the files. - You can use
/some/path/filename
format to move the file elsewhere during renaming. If the path is non-existent, it will be automatically created before moving.
Don't delete or swap the lines while in Vim or things will get ugly.
Script was originally created by thameera. Check out his profile!