如何更好地预览 Ranger 中的档案?

如何更好地预览 Ranger 中的档案?

我不喜欢 Ranger 中档案的默认预览,我想更改它。

例如,对于.zip文件,预览显示 的纯文本输出unzip -l <file>。但是,使用自定义命令,可以显示存档的树状视图(例如,.zip可以使用 以树的形式查看文件)unzip -l <file> | awk 'FNR>3 {$1=$2=$3=""; print substr($0,4)}' | tree --fromfile

如何配置 Ranger 以使用针对每种文件类型(.tar.gz、、.zip.7z...)的自定义 shell 命令预览/显示存档文件?


有关的:如何更好地探索 Ranger 中的档案?

答案1

预览在 中定义.config/ranger/scope.sh。如果您的配置中不存在它,请ranger --copy-config=scope在您的 shell 中运行,它将弹出到您的.config文件夹中。

之后,您可以scope.sh根据需要更改文件。在档案的具体示例中,您可以更改handle_extension功能。

以下是一些示例,将在预览中将 、 和 文件显示为.tar.gz.zip.7z

tar|gz)
    tar -tf "${FILE_PATH}" | tree --fromfile && exit 5
    exit 1;;
zip)
    unzip -l -- "${FILE_PATH}" | awk 'FNR>3 {$1=$2=$3=""; print substr($0,4)}' | tree --fromfile && exit 5
    exit 1;;
7z)
    # This awk script finds out which character column "Name" is at.
    awk_script='{if (ix == 0) {ix = index($0, "Name");}p = (body == 1);if (ix > 0) {body = (body + ($0 ~ / *-[ -]+/)) % 2;}if (p == 1 && body == 1) {print ix;}}'
    7z l "${FILE_PATH}" | awk 'FNR>20 {print $0}' | head -n -2 | cut -c$(7z l "${FILE_PATH}" | awk "$awk_script")- | tree --fromfile && exit 5
    exit 1;;

相关内容