30

I haven't found an advanced tutorial on ranger yet, so my question is: is it possible to execute a command on a selection of files in ranger?

If so, how would I do that?

slm
  • 363,520
  • 117
  • 767
  • 871

1 Answers1

45

This is in man ranger:

@

Open the console with the content "shell %s", placing the cursor before the " %s" so you can quickly run commands with the current selection as the argument.

So,

  1. highlight the files you want to work on with Space

  2. type @ to get to a command prompt which will be :shell %s with the cursor positioned before %s

  3. type the name of your command and press Enter

  4. the command you specified will be executed with selected filenames as parameters

The man page also covers adding a pause to check command output:

FLAGS

There are some additional flags that can currently be used
only in the "shell" command: (for example ":shell -w df")

 p   Redirect output to the pager
 s   Silent mode.  Output will be discarded.
 w   Wait for an Enter-press when the process is done
crw
  • 187
  • 1
  • 10
Lqueryvg
  • 1,909
  • 1
  • 17
  • 8
  • 3
    Is there any output? I execute `:shell realpath %s`, but no output. – acgtyrant Jul 05 '17 at 05:27
  • 1
    Is there a way to automatically get spaces and such escaped in the selected filenames that are passed? I can do it manually of course but it can get tedious. – LJNielsenDk Feb 04 '19 at 11:47