使用護林員,Ranger自定義命令將文件移動到預先指定的目錄?
如何創建
:command
其當前選定的文件移動到預先指定的目錄?說,通過選擇file
並鍵入:move_to_path
運行MV文件/路徑/位置/文件
我怎麼會做同樣的與(1),而是結合了關鍵
:command
?通過突出顯示文件並鍵入mf
來說,它會在選定文件上運行:move_to_path
。
使用護林員,Ranger自定義命令將文件移動到預先指定的目錄?
如何創建:command
其當前選定的文件移動到預先指定的目錄?說,通過選擇file
並鍵入:move_to_path
運行
MV文件/路徑/位置/文件
我怎麼會做同樣的與(1),而是結合了關鍵:command
?通過突出顯示文件並鍵入mf
來說,它會在選定文件上運行:move_to_path
。
我不是一個護林員的用戶,但我看到護林員維基,這似乎是有幫助的條目:。
TL; DR:編輯文件〜/的.config /遊俠/ commands.py
from ranger.api.commands import Command
class move_to_path(Command):
"""
:move_to_path
Move file to a directory
"""
def execute(self):
import shutil # for shutil.copy, os.rename works fine too
shutil.move(self.fm.thisfile.path, "/your/directory/" + self.fm.thisfile.basename)
你現在有你的命令,你可以推出:move_to_path。您可以編寫Python代碼知道從哪裏得到的目錄名稱:固定的,在你選擇的配置文件等
現在,添加一個按鍵綁定,讓我們一起來看看:https://github.com/ranger/ranger/wiki/Keybindings或:http://ranger.nongnu.org/ranger.1.html#KEY-BINDINGS 如果我沒有錯,你可以編輯〜/ .config/ranger/config/rc.conf並在這裏添加一個鍵綁定。 例如,你可以添加一行:
map mf move_to_path
我想這應該做的伎倆。 謝謝你讓我發現護林員,我會嘗試明天:)
編輯: 要移動多個選定的文件,你可以這樣做:
def execute(self):
import shutil # for shutil.copy, os.rename works fine too
from os import basename
for file in self.fm.thistab.get_selection():
shutil.move(file, "/your/directory/" + basename(file))
這完美的作品,但它不是'〜/.config/ranger/config/rc.conf「,它實際上是需要使用map mf move_to_path編輯的〜/ .config/ranger/rc.conf。 – George
另外:你知道是否有一個簡單的方法可以使這個命令影響選定的文件,而不是當前查看的文件? – George
我將不得不嘗試做出可接受的答案,但我認爲github上的wiki包含大量信息,還可以看到python源文件以獲取一些提示。 我會編輯答案。 – RobinG