1
0
chezmoi/home/dot_config/ranger/command.py

57 lines
1.6 KiB
Python
Raw Normal View History

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
# File : command.py
# Author : Jeff LANCE <email@jefflance.me>
# Date : 12.05.2021
# Last Modified Date: 12.05.2021
# Last Modified By : Jeff LANCE <email@jefflance.me>
2024-02-22 16:19:39 +00:00
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)
2024-02-22 16:19:39 +00:00
class tmsu_tag(Command):
""":tmsu_tag
Tags the current file with tmsu
"""
def execute(self):
cf = self.fm.thisfile
self.fm.run('tmsu tag "{0}" {1}'.format(cf.basename, self.rest(1)))