ranger
是一个可以用python扩展的命令行文件管理器。该commands.py
文件包含内置命令的示例:
https://github.com/ranger/ranger/blob/master/ranger/config/commands.py
我可以看到如何通过删除文件,self.fm.delete()
并且我已经浏览了该fm.py
文件,但没有看到一个看起来暴露的函数,该函数允许我以简单的方式复制文件(但我不是 python 开发人员,所以也许我不这样做没看懂):
https://github.com/ranger/ranger/blob/master/ranger/core/fm.py
我只想要一个将复制current selection
到~/.directory/
.
我知道我可以通过键映射来做到这一点,但我想在 python 中做到这一点,以便我可以扩展它,但我无法跳过这一基本步骤。
答案1
您可以通过在文件中创建映射来获得相同的功能,rc.conf
如下所示:
map cto shell -f cp %s ~/.special_directory/
然后,您将选择需要复制的文件,然后按cto
。
答案2
好吧...这就是我最终得到的结果,但我不确定是否有更好的方法:
class cpto(Command):
""":cpto
copies the file to a special directory
"""
def execute(self):
self.fm.execute_console("shell cp %s ~/.special_directory &")
我能够通过克隆 Ranger 存储库、进入其中并运行来fm
更深入地探索该对象cd
pydoc.ranger.core.actions