summary refs log tree commit diff stats
diff options
context:
space:
mode:
-rw-r--r--ranger/core/main.py4
-rw-r--r--ranger/ext/keybinding_parser.py9
2 files changed, 10 insertions, 3 deletions
diff --git a/ranger/core/main.py b/ranger/core/main.py
index bb920e71..c87a4660 100644
--- a/ranger/core/main.py
+++ b/ranger/core/main.py
@@ -79,9 +79,9 @@ def main():
 		load_settings(fm, arg.clean)
 
 		if arg.list_unused_keys:
-			from ranger.ext.keybinding_parser import special_keys
+			from ranger.ext.keybinding_parser import (special_keys,
+					reversed_special_keys)
 			maps = fm.env.keymaps['browser']
-			reversed_special_keys = dict((v,k) for k,v in special_keys.items())
 			for key in sorted(special_keys.values(), key=lambda x: str(x)):
 				if key not in maps:
 					print("<%s>" % reversed_special_keys[key])
diff --git a/ranger/ext/keybinding_parser.py b/ranger/ext/keybinding_parser.py
index 90402fe3..702cd90e 100644
--- a/ranger/ext/keybinding_parser.py
+++ b/ranger/ext/keybinding_parser.py
@@ -49,6 +49,7 @@ special_keys = {
 
 very_special_keys = {
 	'any': ANYKEY,
+	'alt': ALT_KEY,
 	'bg': PASSIVE_ACTION,
 	'allow_quantifiers': QUANT_KEY,
 }
@@ -66,6 +67,8 @@ for n in range(64):
 	special_keys['f' + str(n)] = curses.KEY_F0 + n
 
 special_keys.update(very_special_keys)
+del very_special_keys
+reverse_special_keys = dict((v, k) for k, v in special_keys.items())
 
 
 def parse_keybinding(obj):
@@ -127,7 +130,11 @@ def construct_keybinding(iterable):
 
 
 def key_to_string(key):
-	return chr(key) if key in range(32, 127) else '?'
+	if key in range(33, 127):
+		return chr(key)
+	if key in reverse_special_keys:
+		return "<%s>" % reverse_special_keys[key]
+	return "<%s>" % str(key)
 
 
 def _unbind_traverse(pointer, keys, pos=0):