跳转到内容
来自 Arch Linux 中文维基

lf(意为“list files”即“列出文件”)是一个用 Go 编写的终端文件管理器,受到 ranger强烈启发

其突出特点包括服务器/客户端架构(这样你可以在一个终端窗口中剪切,在另一个窗口中粘贴)以及高度可定制性。

ranger 不同的是,lf 故意将标签或窗口这样的功能排除在外,交给窗口管理器终端多路复用器来处理。

安装

安装 lf 或其开发版本 lf-gitAUR

配置

将默认配置文件从 /usr/share/doc/lf/lfrc.example 复制到 ~/.config/lf/lfrc,作为进一步定制的模板。配置示例中的注释包含一些常见功能。

更多详细配置请参见 lf(1),也可参阅项目的 wiki

使用

默认键位绑定与 vim 类似,与 ranger 的默认设置有所不同,具体请参见 lf(1) § QUICK REFERENCE

另请参阅录屏教程

提示与技巧

ranger 迁移到 lf

对于已经习惯使用 ranger 作为文件管理器的用户,迁移到 lf 意味着默认功能较少,行为略有不同。

lf 项目的 wiki 包括一个关于如何配置 lf 来添加来自 ranger 的功能和默认设置的逐步指南

使用 rifle 打开文件

lf 可以使用包含在 ranger 中的文件打开器 rifle

设置环境变量以自动使用 rifle 在相关应用中打开文件:

export OPENER='rifle'

还可以设置默认编辑器:

export EDITOR='vim'

预览文件

要自动预览当前选中文件的内容,可以在 ~/.config/lf/lfrc 中设置自定义预览脚本。来自 rangerscope.sh 脚本作为定制的良好模板,可以通过添加包装器使用。还有许多其他预览器可以与 lf 一起使用。

沙箱预览

默认的 lf 配置仅预览文本文件,而使用更复杂的预览解析器存在一定风险。如果预览解析器(如 pdftotext)中存在漏洞,可以使用此简单脚本通过 bubblewrap 将预览器沙箱化:

~/.config/lf/previewSandbox.sh
#!/bin/bash
set -euo pipefail
(
    exec bwrap \
     --ro-bind /usr/bin /usr/bin \
     --ro-bind /usr/share/ /usr/share/ \
     --ro-bind /usr/lib /usr/lib \
     --ro-bind /usr/lib64 /usr/lib64 \
     --symlink /usr/bin /bin \
     --symlink /usr/bin /sbin \
     --symlink /usr/lib /lib \
     --symlink /usr/lib64 /lib64 \
     --proc /proc \
     --dev /dev \
     --ro-bind /etc /etc \
     --ro-bind ~/.config ~/.config \
     --ro-bind ~/.cache ~/.cache \
     --ro-bind "$PWD" "$PWD" \
     --unshare-all \
     --new-session \
     bash ~/.config/lf/preview.sh "$@"
)

将你的预览器设置为沙箱脚本,并将实际的预览脚本保存在 ~/.config/lf/preview.sh

set previewer ~/.config/lf/previewSandbox.sh