I used to do this before I discovered vidir. [1] vidir is not actually tied to vi; it lets you rename and delete files through your `$EDITOR`. You edit a temporary file that looks like this:
...
0093<tab>./fstab
0094<tab>./fuse.conf
0095<tab>./fwupd
...
There is also https://github.com/bulletmark/edir designed to improve on vidir.
I haven't used it yet.I'll give Emacs another try some day, I swear, and Dired is one of the reasons.
Edit: [1] I linked to https://github.com/trapd00r/vidir here at first. That is a fork; vidir comes from https://joeyh.name/code/moreutils/. You probably want the original. It is packaged for Debian, FreeBSD, Homebrew, etc. as part of the package `moreutils`.