Python을 통해 파일을 다른 디렉터리로 복사하는 레인저 스크립트를 작성하는 방법

Python을 통해 파일을 다른 디렉터리로 복사하는 레인저 스크립트를 작성하는 방법

rangerPython으로 확장 가능한 명령줄 파일 관리자입니다. 이 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

관련 정보