about summary refs log tree commit diff stats
path: root/ranger
diff options
context:
space:
mode:
authorhut <hut@lavabit.com>2010-01-11 00:10:40 +0100
committerhut <hut@lavabit.com>2010-01-11 00:10:40 +0100
commit9983328cebc02a0e01038880405d061448abcac7 (patch)
treec737d7660251a497eac2134c78fd85e416fc9446 /ranger
parentbe868b98c41dac9e588944ece0d8c70e3eee534a (diff)
downloadranger-9983328cebc02a0e01038880405d061448abcac7.tar.gz
added a way to create symlinks
Diffstat (limited to 'ranger')
-rw-r--r--ranger/actions.py15
-rw-r--r--ranger/defaults/keys.py4
2 files changed, 18 insertions, 1 deletions
diff --git a/ranger/actions.py b/ranger/actions.py
index 48db860c..33952c19 100644
--- a/ranger/actions.py
+++ b/ranger/actions.py
@@ -399,6 +399,21 @@ class Actions(EnvironmentAware, SettingsAware):
 	def cut(self):
 		self.copy()
 		self.env.cut = True
+	
+	def paste_symlink(self):
+		from os import symlink, getcwd
+		from os.path import join
+
+		copied_files = self.env.copy
+
+		if not copied_files:
+			return
+
+		for f in copied_files:
+			try:
+				symlink(f.path, join(getcwd(), f.basename))
+			except Exception as x:
+				self.notify(x)
 
 	def paste(self):
 		"""Paste the selected items into the current directory"""
diff --git a/ranger/defaults/keys.py b/ranger/defaults/keys.py
index 14548076..c08f8ba2 100644
--- a/ranger/defaults/keys.py
+++ b/ranger/defaults/keys.py
@@ -77,7 +77,9 @@ def initialize_commands(command_list):
 	bind('yy', fm.copy())
 	bind('dd', fm.cut())
 	bind('pp', fm.paste())
-	hint('p', 'press //p// once again to confirm pasting')
+	bind('pl', fm.paste_symlink())
+	hint('p', 'press //p// once again to confirm pasting' \
+			', or //l// to create symlinks')
 
 	bind('s', fm.execute_command('bash'))