diff options
-rw-r--r-- | ranger/core/actions.py | 4 | ||||
-rw-r--r-- | ranger/defaults/rc.conf | 1 | ||||
-rw-r--r-- | ranger/ext/keybinding_parser.py | 11 | ||||
-rw-r--r-- | ranger/gui/widgets/browserview.py | 4 |
4 files changed, 12 insertions, 8 deletions
diff --git a/ranger/core/actions.py b/ranger/core/actions.py index 1904082e..42cb6747 100644 --- a/ranger/core/actions.py +++ b/ranger/core/actions.py @@ -24,7 +24,7 @@ from inspect import cleandoc import ranger from ranger.ext.direction import Direction from ranger.ext.relative_symlink import relative_symlink -from ranger.ext.keybinding_parser import construct_keybinding +from ranger.ext.keybinding_parser import key_to_string from ranger.ext.shell_escape import shell_quote from ranger import fsobject from ranger.core.shared import FileManagerAware, EnvironmentAware, \ @@ -102,7 +102,7 @@ class Actions(FileManagerAware, EnvironmentAware, SettingsAware): else: cmd = cmd_class(string) if cmd.resolve_macros and _MacroTemplate.delimiter in string: - macros = dict(('any%d'%i, construct_keybinding([char])) \ + macros = dict(('any%d'%i, key_to_string(char)) \ for i, char in enumerate(wildcards)) if 'any0' in macros: macros['any'] = macros['any0'] diff --git a/ranger/defaults/rc.conf b/ranger/defaults/rc.conf index d56c90a9..a6fd6098 100644 --- a/ranger/defaults/rc.conf +++ b/ranger/defaults/rc.conf @@ -200,6 +200,7 @@ map zf console filter # Bookmarks map `<bg> draw_bookmarks map '<bg> draw_bookmarks +map m<bg> draw_bookmarks map um<bg> draw_bookmarks map `<any> enter_bookmark %any map '<any> enter_bookmark %any diff --git a/ranger/ext/keybinding_parser.py b/ranger/ext/keybinding_parser.py index 4e590283..7dbf8c25 100644 --- a/ranger/ext/keybinding_parser.py +++ b/ranger/ext/keybinding_parser.py @@ -69,12 +69,15 @@ def construct_keybinding(iterable): """ result = [] for c in iterable: - try: - result.append(chr(c)) - except: - result.append("?") + result.append(key_to_string(c)) return ''.join(result) +def key_to_string(key): + try: + return chr(key) + except: + return '?' + # Arbitrary numbers which are not used with curses.KEY_XYZ DIRKEY = 9001 ANYKEY = 9002 diff --git a/ranger/gui/widgets/browserview.py b/ranger/gui/widgets/browserview.py index c789a7d2..b7ec14c2 100644 --- a/ranger/gui/widgets/browserview.py +++ b/ranger/gui/widgets/browserview.py @@ -16,6 +16,7 @@ """The BrowserView manages a set of BrowserColumns.""" import curses from ranger.ext.signals import Signal +from ranger.ext.keybinding_parser import key_to_string from . import Widget from .browsercolumn import BrowserColumn from .pager import Pager @@ -181,8 +182,7 @@ class BrowserView(Widget, DisplayableContainer): self.need_clear = True hints = [] for k, v in self.fm.env.keybuffer.pointer.items(): - try: k = chr(k) - except: k = str(k) + k = key_to_string(k) if isinstance(v, dict): text = '...' else: |