跳至內容
出自 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