Skip to content

Bat

語法高亮的 Cat 增強版

軟體分類 生產力 / 系統工具
軟體標籤
rated-1TypesettingAutomation toolsSplashtop Business Access
開發廠商 David Peter (sharkdp)
Stars
57.6k
Forks
1.5k
License
APACHE 2.0 / MIT
Version
v0.24.0
Update
2026-03-08
OS

產品說明

Bat 是一款用 Rust 語言編寫的 cat 指令複製版(Clone),但它長了一對翅膀(With Wings)。如果你在終端機中經常需要查看設定檔、程式碼或日誌,卻厭倦了 cat 指令那種黑底白字、毫無格式的輸出,那麼 Bat 將會是你最愛的工具。

它的核心功能是在終端機中提供語法高亮(Syntax Highlighting)。不同於 cat 只是單純將文字倒在螢幕上,Bat 能自動辨識檔案類型(支援 Rust, Java, Python, JSON, Markdown 等數百種語言),並套用漂亮的配色主題。此外,它還深度整合了 Git,能直接在行號旁顯示新增、修改或刪除的標記,讓你在查看程式碼時能瞬間掌握變更狀態。

核心特色:

  • 語法高亮:內建大量程式語言與標記語言的語法高亮,讓程式碼閱讀體驗比肩 VS Code。
  • Git 整合:在側邊欄(Gutter)即時顯示 Git 的變更狀態(+ 新增, ~ 修改, - 刪除)。
  • 自動分頁:當檔案內容超過螢幕高度時,自動將內容傳遞給 less 進行分頁顯示(按下 q 即可退出)。
  • 顯示不可見字元:透過參數可以顯示空格、Tab 或換行符號,對於除錯設定檔(如 YAML 或 Makefile)非常有幫助。
  • 無痛替換:參數設計盡量與 cat 保持相容,學習成本極低。

常用指令

Bat 的使用方式與 cat 極為相似,大多數情況下你只需要把 cat 換成 bat 即可。

啟動與基礎操作

# 基礎用法:檢視檔案內容
bat config.yaml

# 串接管線 (Pipeline):將 curl 的結果交給 bat 高亮顯示
curl -s [https://example.com](https://example.com) | bat -l html
指令/參數功能說明應用場景
bat <file>檢視檔案以預設樣式 (行號、高亮、Git 標記) 顯示檔案
-p / --plain純文字模式關閉所有裝飾 (行號、分頁),行為如同傳統 cat,適合複製文字時使用
-n / --number顯示行號僅顯示行號,不顯示 Git 狀態與檔案標頭
-A / --show-all顯示隱形字元將空格、Tab 與換行符號顯示出來,除錯排版問題必備
-l / --language指定語言強制指定語法高亮語言 (例如處理沒有副檔名的檔案)
-r / --line-range指定行數僅顯示特定行數範圍 (例如 bat -r 10:20 file.txt)
--theme切換主題暫時切換配色主題 (如 TwoDark, Dracula)

進階技巧

  • 設為 Manpage 閱讀器:你可以設定環境變數 MANPAGER="sh -c 'col -bx | bat -l man -p'",這樣以後輸入 man git 時,就會看到帶有語法高亮的說明手冊,閱讀體驗大幅提升。
  • 整合 Fzf:Bat 非常適合作為 fzf 的預覽視窗工具。設定 fzf --preview 'bat --style=numbers --color=always --line-range :500 {}',就能在搜尋檔案時,於右側即時預覽帶有高亮的檔案內容。
  • 自訂主題:Bat 支援 Sublime Text 的 .tmTheme 格式,你可以載入自己喜歡的配色方案。

操作介面