bat の概要
bat は、ファイルをシンタックスハイライト付きでターミナルに表示する、cat コマンドの無料でオープンソースの代替ツールです。非常に多くのプログラミング言語やマークアップ言語のコードに色を付け、Git で変更した行を示し、行番号を付け、長いファイルは自動でページャに渡します。それでいて、出力をほかのコマンドにパイプで渡すときは cat と同じように動きます。bat は David Peter と bat の開発者たちが開発し、MIT ライセンスと Apache License 2.0 のデュアルライセンスで公開されています。
bat は Apple シリコン搭載 Mac と Intel Mac のターミナルで動作し、Homebrew(brew install bat)か MacPorts でインストールできます。ほかのツールとの相性もよく、fzf のプレビュー、man ページの色付け、ripgrep の結果の表示などに使えます。
主な機能
bat を使うと、ターミナルでのファイルの読みやすさが大きく変わります。
- シンタックスハイライト:非常に多くのプログラミング言語やマークアップ言語のコードに色を付けます。
- Git 連携:追加・変更された行をサイドバーに表示します。
- 表示されない文字:bat -A でタブ、スペース、改行を表示します。
- 自動ページング:長い出力は less などのページャに渡します。
- cat 互換:パイプで使うと cat と同じようにプレーンテキストを出力します。
- テーマ:配色テーマを選べます。bat --list-themes ですべて表示されます。
- 行の範囲:--line-range でファイルの一部だけを表示できます。
- ほかのツールと連携:fzf のプレビュー、色付きの man ページなどに使えます。
バージョン 0.26.1 の新機能
bat 0.26.1 では、小さな機能が追加され、いくつかの不具合が修正されました。
- -h と --help の出力にページングを追加
- ページャを指定して --list-themes を使うと止まってしまう問題を修正
- 行の範囲で負の値が正しく読み取られない問題を修正
- カスタムアセットを使えなくしていた Docker 構文の不具合を修正
- パイプ使用時に予期しない装飾が付かないように
bat のよくある質問
bat は無料ですか?
はい。bat は無料のオープンソースソフトで、MIT ライセンスと Apache License 2.0 のデュアルライセンスです。
Mac に bat をインストールするには?
Homebrew ならターミナルで brew install bat を実行するか、MacPorts でインストールします。Apple シリコン搭載 Mac 用と Intel Mac 用のビルド済みプログラムも GitHub のリリースページにあります。
bat と cat の違いは?
bat はシンタックスハイライト、行番号、Git の変更マーク、自動ページングを追加します。出力をほかのコマンドにパイプで渡すと、cat と同じようにプレーンテキストを出力します。
bat はどの言語をハイライトできますか?
非常に多くのプログラミング言語とマークアップ言語に対応しており、新しい構文定義を自分で追加することもできます。
bat の配色テーマを変えるには?
bat --list-themes でテーマを確認し、--theme で指定します。環境変数 BAT_THEME を設定すれば、選んだテーマを使い続けられます。
bat のページャをオフにするには?
--paging=never を使うか、bat の設定ファイルで指定します。bat がページングするのは、画面に収まらない出力だけです。
bat で見えない文字を表示できますか?
はい。bat -A で、タブ、スペース、改行などの表示されない文字を表示できます。
bat を fzf と一緒に使えますか?
はい。bat は fzf のプレビュー用コマンドとしてよく使われます。たとえば fzf --preview "bat --color=always {}" のように使います。
bat で man ページに色を付けられますか?
はい。bat を MANPAGER に設定して、man ページをシンタックスハイライト付きで表示する方法が、bat のドキュメントで説明されています。
bat.FULLMAC.app の bat のダウンロードはどこから提供されていますか?
ダウンロードボタンは、インストール手順とリリースが載っている bat の公式 GitHub ページ https://github.com/sharkdp/bat につながっています。bat.FULLMAC.app がツールを改変したり再パッケージしたりすることはありません。
似ているアプリ
- tmuxtmux は、無料でオープンソースのターミナルマルチプレクサです。1 つのターミナルの中で複数のプログラムを、ウインドウや横に並んだペインに分けて動かし、キーボードで切り替えられます。いちばん便利なのはセッションです。セッションからデタッチしても中身はすべて動き続け、ターミナルを閉じたり SSH 接続が切れたりしても大丈夫です。あとでアタッチし直せば、中断したところから続けられます。tmux は Nicholas Marriott とコントリビュータが開発し、ISC ライセンスで公開されています。開発ツール
VigilVigil は、コーディングエージェントをチームとして動かすための、無料でオープンソースの Mac ネイティブターミナルです。複数のエージェントのウィンドウ間で自分でメッセージをコピーする代わりに、ルートのマネージャーエージェントにタスクを渡すと、マネージャーが自分のワーカーエージェントやサブマネージャーを起動します。詳細はツリーを下へ流れ、結果は要約としてマネージャーへ戻るので、マネージャーのコンテキストは軽く保たれます。ライブのノードツリーでチーム全体を一度に見渡せ、各ノードはエージェント自身のターミナル画面をそのまま保つため、どのノードでも開いて直接操作を引き継げます。開発ツール
SwitchShuttleSwitchShuttle は、よく使うターミナルコマンドをワンクリックやキーボードショートカットで実行できる Mac のメニューバーアプリです。コマンドを階層化したサブメニューに整理し、それぞれにグローバルホットキーと絵文字アイコンを割り当てれば、ターミナルを開いて入力しなくても、どこからでも実行できます。iTerm、Terminal、Warp、Alacritty、Hyper などのターミナルに対応し、各コマンドは現在のウィンドウ、新しいタブ、新しいウィンドウのいずれかで実行できます。開発ツール
tty7tty7 は Rust で書かれた GPU レンダリングのターミナルで、Zed の gpui と Alacritty のターミナルコアをもとに作られています。シェルとペインを持つのはウィンドウではなくバックグラウンドのサーバーなので、アプリを終了してもシェルは tmux なしで動き続けます。再起動後は、レイアウト、画面、対応エージェントの会話が元に戻ります。開発ツール
TabbyTabby(旧称 Terminus)は、SSH、Telnet、シリアル通信のクライアントとしても使える、細かく設定できるターミナルエミュレータです。タブと分割ペインを備えたローカルのターミナル、サーバーの接続マネージャ、ルーターやマイコンなどの機器向けのシリアルターミナルを、1 つのアプリでまかなえます。SSH のパスワードや鍵は暗号化されたボルトに保管でき、SSH 経由でファイルを転送でき、テーマやプラグインで見た目や機能を変えられます。Tabby は Eugene Pankov が開発しており、Mac、Windows、Linux で動作します。開発ツール
kittykitty は、GPU でテキストを描画する高速で高機能なターミナルエミュレータです。スクロールや大量の出力もなめらかに表示されます。タブと分割ウインドウを備え、複数のレイアウトが組み込まれているほか、トゥルーカラー、合字、絵文字に対応し、ターミナルの中に直接画像を表示する独自のグラフィックスプロトコルも持っています。スクリプトやコマンドラインから操作でき、kitten と呼ばれる小さなプログラムで機能を拡張できます。設定を引き継いだ SSH、ファイルの左右比較、Unicode 文字の入力などに使えます。kitty は calibre の開発者でもある Kovid Goyal が作っています。開発ツール
David Peter のその他のアプリ
FULLMAC.app はこのアプリをホストしていません。ダウンロードボタンは開発元のページにリンクしています。