summary refs log tree commit diff stats
diff options
context:
space:
mode:
-rw-r--r--ranger/core/actions.py8
-rw-r--r--ranger/ext/keybindings.py10
2 files changed, 10 insertions, 8 deletions
diff --git a/ranger/core/actions.py b/ranger/core/actions.py
index f547b8d0..42f2699d 100644
--- a/ranger/core/actions.py
+++ b/ranger/core/actions.py
@@ -72,7 +72,8 @@ class Actions(FileManagerAware, EnvironmentAware, SettingsAware):
 		text = str(text)
 		self.log.appendleft(text)
 		if self.ui and self.ui.is_on:
-			self.ui.status.notify(text, duration=duration, bad=bad)
+			self.ui.status.notify("  ".join(text.split("\n")),
+					duration=duration, bad=bad)
 		else:
 			print(text)
 
@@ -108,10 +109,7 @@ class Actions(FileManagerAware, EnvironmentAware, SettingsAware):
 				if 'any0' in macros:
 					macros['any'] = macros['any0']
 				string = self.substitute_macros(string, additional=macros)
-			try:
-				cmd_class(string, quantifier=quantifier).execute()
-			except Exception as error:
-				self.notify(error)
+			cmd_class(string, quantifier=quantifier).execute()
 
 	def substitute_macros(self, string, additional=dict()):
 		return _MacroTemplate(string).safe_substitute(self._get_macros(),
diff --git a/ranger/ext/keybindings.py b/ranger/ext/keybindings.py
index 37cceb10..de08f26f 100644
--- a/ranger/ext/keybindings.py
+++ b/ranger/ext/keybindings.py
@@ -73,11 +73,15 @@ class KeyMaps(dict):
 		pointer[last_key] = leaf
 
 	def copy(self, context, source, target):
-		source, pointer = self._clean_input(context, source)
+		clean_source, pointer = self._clean_input(context, source)
 		if not source:
 			return
-		for key in source:
-			pointer = pointer[key]
+		for key in clean_source:
+			try:
+				pointer = pointer[key]
+			except:
+				raise KeyError("Tried to copy the keybinding `%s',"
+						" but it was not found." % source)
 		self.bind(context, target, copy.deepcopy(pointer))
 
 	def unbind(self, context, keys):