It's really nice to see that the author includes detailed instructions for installing without root. It's pretty much how you'd expect it, but a lot of software these days assumes you'll give some random library root access or worse pipe curl to bash:
As a python package developer, I'd assume that being able to install with pip in user space or in a virtual environment is a standard technique. Why duplicate the dozens of tutorials on the internet?
This, plus the multiple-cursors package, can save entire minutes off tedious file-renaming operations. (That may not sound like a lot but trust me every second counts when you're just renaming files.)
Heh I've used emacs for years and never knew about this.
I actually don't tend to use emacs as a file manager for whatever reason. I find shell file utility commands along with sed, awk, xargs to be adequate.
For things like renaming files, I use a similar utility called "qmv", from renameutils.[1] It is super useful, and one of my most-used commands in the terminal.
For many other file-related operations in my terminal I use Midnight Commander.[2]
I've tried emacs' dired-mode, but I didn't see it being particularly useful compared to Midnight Commander without a ton of time spent on configuring it to work the way I like. I might do that sometime, but until then, Midnight Commander already has so many useful features without any of the time commitment or pain of virtually rewriting much of the same functionality in emacs.
Your tip is appreciated, but that pales in comparison to what you could do with vim or emacs and a tool like qmv when renaming files.
You could, for instance, rename by regular expressions, easily do block selections and substitutions, use complex macros, etc. The sky is really the limit.
Then there are unlimited undo features of modern editors, and even branching undo histories where you can get back to a state that would be unreachable with linear undos.
Finally, tools like qmv do sanity checking on your renaming plan, so that if you (for example) wind up renaming two files to the same name, it'll warn you and safely let you rename the original files and try again.
As a result of the power and safety these tools provide, I no longer rename directly using my shell's renaming features (like the ones you describe) except for the absolute simplest and foolproof situations. For anything more complex, I use qmv.
I appreciate the clarification. My comfort with shell (which is one of my primary languages for countless tasks) makes it a more viable option for me and blinds me to the issues many people have. That's definitely not the case for many people.
I can certainly recognize the power of what you are describing. Perhaps I'll give it a try in the future.
Out of curiosity: what do you find are your most compelling use cases for the tool(s)?
Hey Mike, I'm not the original poster, but I'm a good candidate to answer since I'm reasonably comfortable with the shell and I've been looking for a tool like Roamer/qmv specifically because of shortcomings in shell renaming (or my knowledge thereof). My most common case for this is renaming a batch of files to a different naming scheme. For example I was recently renaming 15 or so files that were named like "08/30/2017 John Smith 478939da-b172-4952-b428-d77c4f4f6674.doc" and I wanted them all to be named like "john-smith.doc". I did end up renaming them with the shell but through doing something like `for i in *; do { mv $i \`echo $i | tr '[A-Z]' '[a-z]' | tr ' ' '-'\` } done` (I don't have the final script anymore). Which is slower to write and less elegant than the Roamer/qmv approach. But I'm very curious if there's a better approach to this problem on the shell.
Yup, agree 100%! Using `wdired` was my introduction to "editor-based file-system editing". Maintaining an emacs setup for this feature is overkill though.
I think the single quotes are correct, and are whats in my history. I think they're arguments to the zmv program, which itself does the expansion and $1 substitutions. Otherwise I think that $1 would be substituted once when you run it instead of for each file.
I've used zmv to also reorganize the directory structure of files too, something that seems easier to do with its glob/variable replace syntax.
Nice to have a cross platform option for usage in scripts though.
One of the things I love about dired-mode is wdired, which lets you edit the contents of the dired buffer as if it were a file, and then hit C-c C-c to make your changes happen: renamings, deletions, even file permission changes.
I use Larry Wall's rename, I just wish I could tell it to use "git mv" instead. Seems like qmv allow that with the --command flag, I'll have to try it, thanks!
I'm hourly user of Midnight Commander on linux, bash.exe, cygwin, mingw, whenever it comes.
And staunch FAR Commander supporter for Windows. I sometimes call mc from FAR and back and forth (okay, very rarely :))
Long time ago there was PC Tools, and a program called.. yes "File Manager" for DOS - both were single-column, yet very powerful - browsing megabytes of text files effortless on 286 :)
back then, there was a tool that allowed direct directory manipulation - renaming, copying, but nothing like the tool demonstrated. Thank you!
Because you have the command-line + browser at the same time. You can quickly copy, view, move files. Change quickly to folders remembered in history. Go in archives, copy, view from there to outside. Sort by various things. Execute directly files.
For example, if I need to run one exe, not in my PATH over some file, I have them both in left and right window. I go to the left, type "Ctrl+F" - e.g. get me the full name (in this case executable), then go to the other window, type "Ctrl+F" again - get me the file to become first argument on the executable and run.
Ctrl+O (in midnight commander too), switches to almost fullscreen command-line - so in a way it's always better than just a command-line.
Search in Files, compare dirs, and many other features (there are tons of plugins).
Also checking SMB shares, FTP, System Processes (though I prefer SysInternals ProcExp.exe there)
I use the Windows Explorer (the file manager) only for very few things - certain context menu items, some forms of preview. It's always there by typing "explorer ." from the current folder.
I really like Ranger[1] as a TUI file manager. It's quite full featured (supporting previews of most things -- even images with libcaca) and has a vim-like interface. It also has `:bulkrename` to allow you to rename a set of files with whatever $EDITOR you want.
* Search support: it will search your string in current directory tree. It can search your string inside archives too.
* Basic print support through libcups.
* Extract/compress files/folders through libarchive.
* Powermanagement inhibition while processing a job (eg: while pasting a file) to avoid data loss.
* Internal udisks2 monitor, to poll for new devices. It can automount new connected devices too. Device monitor will list only mountable devices, eg: dvd reader will not be listed until a cd/dvd is inserted.
* Drives/usb sticks/ISO files (un)mount through udisks2.
* Distro package files installation through packagekit.
That file manager might be excellent, but did you look at the link? This FM uses your text editor to manage files, which is totally different from a ncurses interface.
I think that's what the demo showed, a deleted file is put into roamer's trash directory. So when a file is deleted (or moved), the hash points to the new location, the trash in this case.
I love stuff like this. I'm a fairly basic linux user -- mainly basic server stuff. Since I moved to OSX a few years back (from Windows) for my main system, I've been trying to go CLI with as much as possible. Fortunately, brew has almost everything I've wanted to far.
Renaming a lot of files is something I do on a regular basis, so this is another piece I can ditch the trackpad for.
Well that sort of worked, however it seems to wait for the whole VS Code process to end which obviously is a pain if you have a bunch of stuff open, which is a shame.
https://github.com/abaldwin88/roamer/blob/master/doc/faq.md