Edite ~/.config/ranger/commands.py
para conter algo como:
from ranger.api.commands import *
class newcmd(Command):
def execute(self):
if not self.arg(1):
self.fm.notify('Wrong number of arguments', bad=True)
return
# First argument. 0 is the command name.
self.fm.notify(self.arg(1))
# Current directory to status line.
self.fm.notify(self.fm.thisdir)
# Run a shell command.
self.fm.run(['touch', 'newfile')
Agora você pode digitar:
:newcmd myarg
para executar o comando definido.
Mais opções podem ser encontradas em: link
Você pode ir além e definir um mapa para ele, por exemplo: adicionar a ~/.config/ranger/rc.conf
:
map ,n console newcmd
map ,m newcmd default-arg
E agora você pode simplesmente digitar:
-
,n
para escrevernewcmd
na linha de status e prepare-se para o usuário inserir o primeiro argumento -
,m
e execute o comando imediatamente com um argumento padrão
Testado no ranger 1.6.1.