跳转到内容

lf

来自 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