<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Yazi on Tarragon</title><link>https://tarrragon.github.io/blog/tags/yazi/</link><description>Recent content in Yazi on Tarragon</description><generator>Hugo -- gohugo.io</generator><language>zh-TW</language><copyright>Tarragon (CC BY 4.0)</copyright><lastBuildDate>Mon, 15 Jun 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://tarrragon.github.io/blog/tags/yazi/index.xml" rel="self" type="application/rss+xml"/><item><title>終端機檔案管理器：broot、yazi、ranger 的遠端瀏覽與選型</title><link>https://tarrragon.github.io/blog/linux/tools/cli/file-manager-tuis/</link><pubDate>Mon, 15 Jun 2026 00:00:00 +0000</pubDate><guid>https://tarrragon.github.io/blog/linux/tools/cli/file-manager-tuis/</guid><description>&lt;p>終端機檔案管理器把資料夾結構與檔案內容做成全螢幕互動介面，讓遠端只有終端機時也能像 IDE 側邊欄那樣瀏覽目錄、預覽檔案、搬移與改名，取代反覆 &lt;code>ls&lt;/code>、&lt;code>cd&lt;/code>、&lt;code>cat&lt;/code> 的來回。在純 SSH 情境下，它補上 git 線圖與系統監控之外的另一塊日常需求：檔案層級的導覽與操作。&lt;/p>
&lt;p>本文承接 &lt;a href="https://tarrragon.github.io/blog/linux/tools/cli/cli-graphical-tools-overview/" data-link-title="終端機圖形化工具總覽：遠端操作下的 TUI、文字圖表與多工器" data-link-desc="在純文字終端機裡用 ASCII 與製圖字元做出監控儀表板、資料圖表與多視窗操作的工具總覽，並針對 SSH 伺服器、手機平板、低頻寬三種遠端情境給出選型判讀。">終端機圖形化工具總覽&lt;/a> 的檔案瀏覽分類。&lt;/p>
&lt;h2 id="兩種介面範式樹狀與-miller-欄狀">兩種介面範式：樹狀與 Miller 欄狀&lt;/h2>
&lt;p>檔案管理器的版面分兩種範式，直接決定操作手感，也是「我記得的是哪一個」最快的辨認點。&lt;/p>
&lt;p>樹狀（tree）範式像 IDE 的左側邊欄：一棵可展開、收合的目錄樹，深層結構的層級關係一眼看到。&lt;code>broot&lt;/code> 是代表，它的官方定位就是「tree-like view」，配上模糊輸入過濾能直接跳到深層目錄，&lt;code>--max-depth&lt;/code> 還能控制樹要展開幾層。&lt;/p>
&lt;p>Miller 欄狀（Miller columns）範式像 macOS Finder 的欄狀檢視：並列數欄（父目錄、當前目錄、預覽），游標右移進入子目錄、左移回上層，最右欄即時預覽當前檔案內容。&lt;code>yazi&lt;/code> 與 &lt;code>ranger&lt;/code> 走這條，預覽窗大、適合邊瀏覽邊讀內容。&lt;/p>
&lt;p>辨認方式很單純：記得的是「可展開／收合的樹」就是 broot 這類；記得的是「左邊瀏覽、右邊一大塊預覽」就是 yazi／ranger 這類。&lt;/p>
&lt;h2 id="工具對照">工具對照&lt;/h2>
&lt;table>
 &lt;thead>
 &lt;tr>
 &lt;th>工具&lt;/th>
 &lt;th>語言&lt;/th>
 &lt;th>介面範式&lt;/th>
 &lt;th>特色&lt;/th>
 &lt;/tr>
 &lt;/thead>
 &lt;tbody>
 &lt;tr>
 &lt;td>&lt;code>broot&lt;/code>&lt;/td>
 &lt;td>Rust&lt;/td>
 &lt;td>可展開樹&lt;/td>
 &lt;td>樹狀 + 模糊跳轉 + 退出時 cd 整合（&lt;code>br&lt;/code>）&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;code>yazi&lt;/code>&lt;/td>
 &lt;td>Rust&lt;/td>
 &lt;td>Miller 欄狀&lt;/td>
 &lt;td>非同步預覽（圖片／程式碼）、反應最快&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;code>ranger&lt;/code>&lt;/td>
 &lt;td>Python&lt;/td>
 &lt;td>Miller 欄狀&lt;/td>
 &lt;td>老牌、外掛與設定分享生態最大&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;code>nnn&lt;/code>&lt;/td>
 &lt;td>C&lt;/td>
 &lt;td>細節／預覽&lt;/td>
 &lt;td>極簡超快、資源佔用低&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;code>lf&lt;/code>&lt;/td>
 &lt;td>Go&lt;/td>
 &lt;td>Miller 欄狀&lt;/td>
 &lt;td>ranger 風、單一 binary&lt;/td>
 &lt;/tr>
 &lt;/tbody>
&lt;/table>
&lt;p>&lt;code>broot&lt;/code> 把目錄做成可展開的樹，輸入幾個字就模糊過濾並跳轉到符合的路徑，是深層 monorepo 裡找檔最快的範式。它的 &lt;code>br&lt;/code> shell function 讓退出時把工作目錄切到所在位置，等於用它當互動式 &lt;code>cd&lt;/code> — 純 &lt;code>broot&lt;/code> 指令做不到這件事，因為子行程改不了父 shell 的目錄。&lt;code>br&lt;/code> 不會自動就位：首次執行 &lt;code>broot&lt;/code> 會跳出提示問是否安裝（答 &lt;code>Y&lt;/code>，或手動跑 &lt;code>broot --install&lt;/code>），它把函式寫進 shell rc，重新載入 rc 後改用 &lt;code>br&lt;/code> 啟動。如果還沒安裝 &lt;code>br&lt;/code>，在 broot 裡按 &lt;code>Alt + Enter&lt;/code>（&lt;code>:cd&lt;/code>）跳轉會看到 &lt;code>This verb needs broot to be launched as br&lt;/code> 的提示 — 這就是還沒透過 &lt;code>br&lt;/code> 啟動的訊號，裝好 &lt;code>br&lt;/code> 並改用 &lt;code>br&lt;/code> 啟動就能跳轉。&lt;/p>
&lt;p>操作上記幾個鍵就夠：直接打字會即時模糊過濾目錄樹，方向鍵移動游標；目錄上 &lt;code>Enter&lt;/code> 進入該層、&lt;code>Alt + Enter&lt;/code>（verb &lt;code>:cd&lt;/code>）離開 broot 並把 shell 切到該目錄、檔案上 &lt;code>Enter&lt;/code> 用預設程式開啟；&lt;code>Ctrl + q&lt;/code> 離開，&lt;code>Esc&lt;/code> 退回上一層狀態。完整快捷鍵與 verb 清單按 &lt;code>?&lt;/code> 叫出。深層結構需要綜觀層級時，樹狀比欄狀直觀。要注意 broot 是導覽與啟動器、不內建文字編輯：改檔得在檔案上開外部編輯器（叫出 &lt;code>$EDITOR&lt;/code>），它的強項在樹狀導覽與跳轉，不在看內容或改內容。&lt;/p>
&lt;p>&lt;code>yazi&lt;/code> 是 Miller 欄狀的現代實作，Rust 寫、預覽走非同步，大目錄或檔案很多時捲動不卡。它的程式碼預覽&lt;strong>內建語法高亮&lt;/strong>（用內建 highlighter、開箱就有彩色，不必另裝相依，實測程式碼確實彩色渲染）；圖片預覽則看終端機支援度（見最後一節）。要的是「邊瀏覽邊看大塊內容」且在意速度時，yazi 最順。&lt;/p>
&lt;p>&lt;code>ranger&lt;/code> 是 Miller 欄狀的老牌，外掛、設定檔分享與教學資源最多。它的取捨在依賴：ranger 是 Python，遠端機器要有 Python runtime，而且較新的 Python 版本會在啟動時印 deprecation 警告（實測 ranger 1.9.4 配 Python 3.14 會噴 &lt;code>SyntaxWarning: 'return' in a 'finally' block&lt;/code>，功能不受影響但訊息惱人）。預覽渲染同樣靠外部相依：ranger 預設的程式碼預覽是&lt;strong>純文字、無語法高亮&lt;/strong>，要彩色得另裝 &lt;code>highlight&lt;/code>、&lt;code>bat&lt;/code> 或 &lt;code>pygments&lt;/code> 並啟用 previewer（實測沒裝這些時就只有純文字，與 yazi 開箱即有高亮形成對比）。生態與依賴是它的一體兩面。&lt;/p>
&lt;p>&lt;code>nnn&lt;/code>（C）與 &lt;code>lf&lt;/code>（Go）走輕量路線，啟動極快、資源佔用低，適合老舊或資源吃緊的機器；&lt;code>lf&lt;/code> 是單一 binary，搬檔即用。&lt;/p>
&lt;h2 id="遠端情境的選型">遠端情境的選型&lt;/h2>
&lt;p>選型回到「要哪種瀏覽範式」加上「目標機器能裝什麼」兩條軸：&lt;/p>
&lt;ul>
&lt;li>想要 IDE 式可展開樹、常跳深層目錄：選 &lt;code>broot&lt;/code>，樹狀加模糊跳轉在深層結構找檔最快。&lt;/li>
&lt;li>想要欄狀導覽加強預覽（看圖、讀程式碼）、在意速度：選 &lt;code>yazi&lt;/code>。&lt;/li>
&lt;li>已有 ranger 習慣或需要特定外掛：選 &lt;code>ranger&lt;/code>，但先確認遠端有 Python、並接受啟動時的警告訊息。&lt;/li>
&lt;li>受限或老舊機器、要單一 binary 搬過去就用：&lt;code>lf&lt;/code>（Go）或 &lt;code>nnn&lt;/code>（C）。&lt;/li>
&lt;/ul>
&lt;p>安裝依賴是遠端的隱性分界。編譯型工具（broot、yazi、lf、nnn）搬一個 binary 就近可用；&lt;code>ranger&lt;/code> 的 Python 依賴在不給裝套件或 Python 版本尷尬的機器上較麻煩。編譯型的單一 binary 仍要留意 glibc／musl 對得上目標系統，這點與 git 工具相同，見 &lt;a href="https://tarrragon.github.io/blog/linux/tools/cli/git-line-graph-tools-for-remote-cli/" data-link-title="遠端 CLI 開發的 git 線圖工具選型：tig、lazygit、gitui 與管線增強" data-link-desc="純 CLI、遠端開發情境下查看 git 分支線圖的工具地景，從 tig 唯讀瀏覽到 lazygit/gitui 操作中樞的定位差異，含選型判準與 lazygit 上手、delta side-by-side diff 設定。">git 線圖工具選型&lt;/a> 的單一 binary 注意事項。&lt;/p></description><content:encoded><![CDATA[<p>終端機檔案管理器把資料夾結構與檔案內容做成全螢幕互動介面，讓遠端只有終端機時也能像 IDE 側邊欄那樣瀏覽目錄、預覽檔案、搬移與改名，取代反覆 <code>ls</code>、<code>cd</code>、<code>cat</code> 的來回。在純 SSH 情境下，它補上 git 線圖與系統監控之外的另一塊日常需求：檔案層級的導覽與操作。</p>
<p>本文承接 <a href="/blog/linux/tools/cli/cli-graphical-tools-overview/" data-link-title="終端機圖形化工具總覽：遠端操作下的 TUI、文字圖表與多工器" data-link-desc="在純文字終端機裡用 ASCII 與製圖字元做出監控儀表板、資料圖表與多視窗操作的工具總覽，並針對 SSH 伺服器、手機平板、低頻寬三種遠端情境給出選型判讀。">終端機圖形化工具總覽</a> 的檔案瀏覽分類。</p>
<h2 id="兩種介面範式樹狀與-miller-欄狀">兩種介面範式：樹狀與 Miller 欄狀</h2>
<p>檔案管理器的版面分兩種範式，直接決定操作手感，也是「我記得的是哪一個」最快的辨認點。</p>
<p>樹狀（tree）範式像 IDE 的左側邊欄：一棵可展開、收合的目錄樹，深層結構的層級關係一眼看到。<code>broot</code> 是代表，它的官方定位就是「tree-like view」，配上模糊輸入過濾能直接跳到深層目錄，<code>--max-depth</code> 還能控制樹要展開幾層。</p>
<p>Miller 欄狀（Miller columns）範式像 macOS Finder 的欄狀檢視：並列數欄（父目錄、當前目錄、預覽），游標右移進入子目錄、左移回上層，最右欄即時預覽當前檔案內容。<code>yazi</code> 與 <code>ranger</code> 走這條，預覽窗大、適合邊瀏覽邊讀內容。</p>
<p>辨認方式很單純：記得的是「可展開／收合的樹」就是 broot 這類；記得的是「左邊瀏覽、右邊一大塊預覽」就是 yazi／ranger 這類。</p>
<h2 id="工具對照">工具對照</h2>
<table>
  <thead>
      <tr>
          <th>工具</th>
          <th>語言</th>
          <th>介面範式</th>
          <th>特色</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td><code>broot</code></td>
          <td>Rust</td>
          <td>可展開樹</td>
          <td>樹狀 + 模糊跳轉 + 退出時 cd 整合（<code>br</code>）</td>
      </tr>
      <tr>
          <td><code>yazi</code></td>
          <td>Rust</td>
          <td>Miller 欄狀</td>
          <td>非同步預覽（圖片／程式碼）、反應最快</td>
      </tr>
      <tr>
          <td><code>ranger</code></td>
          <td>Python</td>
          <td>Miller 欄狀</td>
          <td>老牌、外掛與設定分享生態最大</td>
      </tr>
      <tr>
          <td><code>nnn</code></td>
          <td>C</td>
          <td>細節／預覽</td>
          <td>極簡超快、資源佔用低</td>
      </tr>
      <tr>
          <td><code>lf</code></td>
          <td>Go</td>
          <td>Miller 欄狀</td>
          <td>ranger 風、單一 binary</td>
      </tr>
  </tbody>
</table>
<p><code>broot</code> 把目錄做成可展開的樹，輸入幾個字就模糊過濾並跳轉到符合的路徑，是深層 monorepo 裡找檔最快的範式。它的 <code>br</code> shell function 讓退出時把工作目錄切到所在位置，等於用它當互動式 <code>cd</code> — 純 <code>broot</code> 指令做不到這件事，因為子行程改不了父 shell 的目錄。<code>br</code> 不會自動就位：首次執行 <code>broot</code> 會跳出提示問是否安裝（答 <code>Y</code>，或手動跑 <code>broot --install</code>），它把函式寫進 shell rc，重新載入 rc 後改用 <code>br</code> 啟動。如果還沒安裝 <code>br</code>，在 broot 裡按 <code>Alt + Enter</code>（<code>:cd</code>）跳轉會看到 <code>This verb needs broot to be launched as br</code> 的提示 — 這就是還沒透過 <code>br</code> 啟動的訊號，裝好 <code>br</code> 並改用 <code>br</code> 啟動就能跳轉。</p>
<p>操作上記幾個鍵就夠：直接打字會即時模糊過濾目錄樹，方向鍵移動游標；目錄上 <code>Enter</code> 進入該層、<code>Alt + Enter</code>（verb <code>:cd</code>）離開 broot 並把 shell 切到該目錄、檔案上 <code>Enter</code> 用預設程式開啟；<code>Ctrl + q</code> 離開，<code>Esc</code> 退回上一層狀態。完整快捷鍵與 verb 清單按 <code>?</code> 叫出。深層結構需要綜觀層級時，樹狀比欄狀直觀。要注意 broot 是導覽與啟動器、不內建文字編輯：改檔得在檔案上開外部編輯器（叫出 <code>$EDITOR</code>），它的強項在樹狀導覽與跳轉，不在看內容或改內容。</p>
<p><code>yazi</code> 是 Miller 欄狀的現代實作，Rust 寫、預覽走非同步，大目錄或檔案很多時捲動不卡。它的程式碼預覽<strong>內建語法高亮</strong>（用內建 highlighter、開箱就有彩色，不必另裝相依，實測程式碼確實彩色渲染）；圖片預覽則看終端機支援度（見最後一節）。要的是「邊瀏覽邊看大塊內容」且在意速度時，yazi 最順。</p>
<p><code>ranger</code> 是 Miller 欄狀的老牌，外掛、設定檔分享與教學資源最多。它的取捨在依賴：ranger 是 Python，遠端機器要有 Python runtime，而且較新的 Python 版本會在啟動時印 deprecation 警告（實測 ranger 1.9.4 配 Python 3.14 會噴 <code>SyntaxWarning: 'return' in a 'finally' block</code>，功能不受影響但訊息惱人）。預覽渲染同樣靠外部相依：ranger 預設的程式碼預覽是<strong>純文字、無語法高亮</strong>，要彩色得另裝 <code>highlight</code>、<code>bat</code> 或 <code>pygments</code> 並啟用 previewer（實測沒裝這些時就只有純文字，與 yazi 開箱即有高亮形成對比）。生態與依賴是它的一體兩面。</p>
<p><code>nnn</code>（C）與 <code>lf</code>（Go）走輕量路線，啟動極快、資源佔用低，適合老舊或資源吃緊的機器；<code>lf</code> 是單一 binary，搬檔即用。</p>
<h2 id="遠端情境的選型">遠端情境的選型</h2>
<p>選型回到「要哪種瀏覽範式」加上「目標機器能裝什麼」兩條軸：</p>
<ul>
<li>想要 IDE 式可展開樹、常跳深層目錄：選 <code>broot</code>，樹狀加模糊跳轉在深層結構找檔最快。</li>
<li>想要欄狀導覽加強預覽（看圖、讀程式碼）、在意速度：選 <code>yazi</code>。</li>
<li>已有 ranger 習慣或需要特定外掛：選 <code>ranger</code>，但先確認遠端有 Python、並接受啟動時的警告訊息。</li>
<li>受限或老舊機器、要單一 binary 搬過去就用：<code>lf</code>（Go）或 <code>nnn</code>（C）。</li>
</ul>
<p>安裝依賴是遠端的隱性分界。編譯型工具（broot、yazi、lf、nnn）搬一個 binary 就近可用；<code>ranger</code> 的 Python 依賴在不給裝套件或 Python 版本尷尬的機器上較麻煩。編譯型的單一 binary 仍要留意 glibc／musl 對得上目標系統，這點與 git 工具相同，見 <a href="/blog/linux/tools/cli/git-line-graph-tools-for-remote-cli/" data-link-title="遠端 CLI 開發的 git 線圖工具選型：tig、lazygit、gitui 與管線增強" data-link-desc="純 CLI、遠端開發情境下查看 git 分支線圖的工具地景，從 tig 唯讀瀏覽到 lazygit/gitui 操作中樞的定位差異，含選型判準與 lazygit 上手、delta side-by-side diff 設定。">git 線圖工具選型</a> 的單一 binary 注意事項。</p>
<p>預覽能力有一條邊界要先知道：程式碼與純文字檔的預覽在任何終端機都穩定，但圖片預覽需要終端機支援影像協定（sixel／kitty）。純文字遠端通道下，沒有影像協定時圖片會退回檔名與中繼資訊，這與 <a href="/blog/linux/tools/cli/cli-graphical-tools-overview/" data-link-title="終端機圖形化工具總覽：遠端操作下的 TUI、文字圖表與多工器" data-link-desc="在純文字終端機裡用 ASCII 與製圖字元做出監控儀表板、資料圖表與多視窗操作的工具總覽，並針對 SSH 伺服器、手機平板、低頻寬三種遠端情境給出選型判讀。">總覽</a> 對影像協定的取捨一致。</p>
<h2 id="下一步路由">下一步路由</h2>
<ul>
<li>把檔案管理器擺進可持久化的多工器 pane：<a href="/blog/linux/tools/cli/tmux-persistence-and-basics/" data-link-title="tmux 基礎：遠端 session 持久化與基本操作" data-link-desc="tmux 終端機多工器的遠端使用核心：detach/reattach 讓 session 脫離連線生命週期、prefix key 與 window/pane 操作、手機友善的快捷鍵調校，以及 tmux 與 zellij 的選型對照。">tmux 基礎</a>。</li>
<li>編譯型工具搬到遠端的單一 binary 注意事項：<a href="/blog/linux/tools/cli/git-line-graph-tools-for-remote-cli/" data-link-title="遠端 CLI 開發的 git 線圖工具選型：tig、lazygit、gitui 與管線增強" data-link-desc="純 CLI、遠端開發情境下查看 git 分支線圖的工具地景，從 tig 唯讀瀏覽到 lazygit/gitui 操作中樞的定位差異，含選型判準與 lazygit 上手、delta side-by-side diff 設定。">git 線圖工具選型</a>。</li>
<li>檔案管理在遠端工具分類中的定位：<a href="/blog/linux/tools/cli/cli-graphical-tools-overview/" data-link-title="終端機圖形化工具總覽：遠端操作下的 TUI、文字圖表與多工器" data-link-desc="在純文字終端機裡用 ASCII 與製圖字元做出監控儀表板、資料圖表與多視窗操作的工具總覽，並針對 SSH 伺服器、手機平板、低頻寬三種遠端情境給出選型判讀。">終端機圖形化工具總覽</a>。</li>
</ul>
]]></content:encoded></item></channel></rss>