lf(意為「list files」即「列出文件」)是一個用 Go 編寫的終端文件管理器,受到 ranger 的強烈啟發。
其突出特點包括伺服器/客戶端架構(這樣你可以在一個終端窗口中剪切,在另一個窗口中粘貼)以及高度可定製性。
與 ranger 不同的是,lf 故意將標籤或窗口這樣的功能排除在外,交給窗口管理器或終端多路復用器來處理。
安裝
配置
將默認配置文件從 /usr/share/doc/lf/lfrc.example
複製到 ~/.config/lf/lfrc
,作為進一步定製的模板。配置示例中的注釋包含一些常見功能。
使用
默認鍵位綁定與 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
中設置自定義預覽腳本。來自 ranger 的 scope.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