如何编写 ranger 脚本通过 python 将文件复制到另一个目录

如何编写 ranger 脚本通过 python 将文件复制到另一个目录

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更深入地探索该对象cdpydoc.ranger.core.actions

相关内容