aboutsummaryrefslogtreecommitdiff
path: root/config.dot/ranger/commands.py.link
diff options
context:
space:
mode:
Diffstat (limited to 'config.dot/ranger/commands.py.link')
-rw-r--r--config.dot/ranger/commands.py.link50
1 files changed, 50 insertions, 0 deletions
diff --git a/config.dot/ranger/commands.py.link b/config.dot/ranger/commands.py.link
new file mode 100644
index 0000000..b8706a3
--- /dev/null
+++ b/config.dot/ranger/commands.py.link
@@ -0,0 +1,50 @@
+from ranger.api.commands import Command
+
+class mkcd(Command):
+ """
+ :mkcd <dirname>
+
+ Creates a directory with the name <dirname> and enters it.
+ """
+
+ def execute(self):
+ from os.path import join, expanduser, lexists
+ from os import makedirs
+ import re
+
+ dirname = join(self.fm.thisdir.path, expanduser(self.rest(1)))
+ if not lexists(dirname):
+ makedirs(dirname)
+
+ match = re.search('^/|^~[^/]*/', dirname)
+ if match:
+ self.fm.cd(match.group(0))
+ dirname = dirname[match.end(0):]
+
+ for m in re.finditer('[^/]+', dirname):
+ s = m.group(0)
+ if s == '..' or (s.startswith('.') and not self.fm.settings['show_hidden']):
+ self.fm.cd(s)
+ else:
+ ## We force ranger to load content before calling `scout`.
+ self.fm.thisdir.load_content(schedule=False)
+ self.fm.execute_console('scout -ae ^{}$'.format(s))
+ else:
+ self.fm.notify("file/directory exists!", bad=True)
+
+class toggle_flat(Command):
+ """
+ :toggle_flat
+
+ Flattens or unflattens the directory view.
+ """
+
+ def execute(self):
+ if self.fm.thisdir.flat == 0:
+ self.fm.thisdir.unload()
+ self.fm.thisdir.flat = -1
+ self.fm.thisdir.load_content()
+ else:
+ self.fm.thisdir.unload()
+ self.fm.thisdir.flat = 0
+ self.fm.thisdir.load_content()