diff options
-rw-r--r-- | ranger/api/commands.py | 1 | ||||
-rw-r--r-- | ranger/config/commands.py | 2 | ||||
-rw-r--r-- | ranger/gui/widgets/console.py | 7 |
3 files changed, 8 insertions, 2 deletions
diff --git a/ranger/api/commands.py b/ranger/api/commands.py index ce381e18..4250a5da 100644 --- a/ranger/api/commands.py +++ b/ranger/api/commands.py @@ -90,6 +90,7 @@ class Command(FileManagerAware): def __init__(self, line, quantifier=None): self.line = line + self.updated_line = line self.args = line.split() self.quantifier = quantifier try: diff --git a/ranger/config/commands.py b/ranger/config/commands.py index 14e3f918..f945ccf2 100644 --- a/ranger/config/commands.py +++ b/ranger/config/commands.py @@ -40,6 +40,8 @@ # self.args: A list of all (space-separated) arguments to the command. # self.quantifier: If this command was mapped to the key "X" and # the user pressed 6X, self.quantifier will be 6. +# self.updated_line: The quick() method can overwrite this attribute and +# the console will use it as the new line. # self.arg(n): The n-th argument, or an empty string if it doesn't exist. # self.rest(n): The n-th argument plus everything that followed. For example, # If the command was "search foo bar a b c", rest(2) will be "bar a b c" diff --git a/ranger/gui/widgets/console.py b/ranger/gui/widgets/console.py index 10458a54..3b2781d8 100644 --- a/ranger/gui/widgets/console.py +++ b/ranger/gui/widgets/console.py @@ -418,8 +418,11 @@ class Console(Widget): pass else: cmd = cls(self.line) - if cmd and cmd.quick(): - self.execute(cmd) + if cmd: + result = cmd.quick() + self.line = cmd.updated_line + if result: + self.execute(cmd) def ask(self, text, callback, choices=['y', 'n']): """ |