跳至內容

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