|
|
- import ranger.api
- from ranger.api.commands import *
- from os import getenv
- import re
-
-
- class z(Command):
- """:z
- Uses .z file to set the current directory.
- """
- def execute(self):
-
- # location of .z file
- z_loc = getenv("_Z_DATA") or getenv("HOME")+"/.z"
- with open(z_loc,"r") as fobj:
- flists = fobj.readlines()
-
- # user given directory
- req = re.compile(".*".join(self.args[1:]),re.IGNORECASE)
- directories = []
- for i in flists:
- if req.search(i):
- directories.append(i.split("|")[0])
-
- try:
- # smallest(length) directory will be the directory required
- self.fm.execute_console("cd " + min(directories,key=lambda x: len(x)))
- except Exception as e:
- raise Exception("Directory not found")
|