[rust]cat代替ツール「bat」

コマンド

ターミナルでの開発作業において、誰もが毎日欠かさず叩くコマンド、それが cat です。しかし、標準の cat は単にファイルの中身を流し出すだけで、構文の強調(シンタックスハイライト)も行番号もなく、少し味気ないと感じたことはないでしょうか?

そんな CLI 生活を劇的にモダンにする Rust 製の代替ツールが 「bat」 です。「Cat with wings(翼の生えた cat)」を掲げるこのツールは、美しさと実用性を兼ね備えた、全開発者必携のコマンドです。

本記事では、Mac と Ubuntu へのインストールから、知っておくと便利な設定・活用術までを徹底解説します。

1. bat がもたらす 3 つの革命

標準の cat と比較して、bat には以下の大きな強みがあります。

  • 美しいシンタックスハイライト: 数多くのプログラミング言語やマークアップ言語を自動判別し、エディタのような色付けを行います。
  • Git との深い連携: 左端のサイドバーに Git の変更ステータス(追加・変更・削除)が視覚的に表示されます。
  • インテリジェントなページャ機能: ファイルが長い場合は自動的に less のようなページャで開き、短い場合はそのまま出力します。

2. インストール手順

macOS (Homebrew)

Mac ユーザーなら、Homebrew を使って一瞬で導入可能です。

brew install bat

Ubuntu / Debian 系

Ubuntu などの Debian 系ディストリビューションでは apt でインストールできます。

sudo apt update
sudo apt install bat

【重要】Ubuntu での「batcat」問題

Ubuntu では、別パッケージとの名前衝突を避けるため、実行コマンド名が batcat になっている場合があります。

bat と打ちたいのに動かない!」という場合は、以下の設定でシンボリックリンクを作成するか、エイリアスを設定するのがプロの「理詰め」な解決法です。

シンボリックリンクを貼る方法(推奨):

mkdir -p ~/.local/bin
ln -s /usr/bin/batcat ~/.local/bin/bat

~/.local/bin にパスが通っていることを確認してください。

3. 設定ファイルで自分好みにカスタマイズ

bat の真価はカスタマイズ性にあります。デフォルトでは満足できないこだわり派の方は、設定ファイルをいじりましょう。

設定ファイルの場所を確認

bat --config-file
# 一般的には ~/.config/bat/config

おすすめの基本設定

設定ファイルに以下のようなオプションを記述しておくと、毎回フラグを立てる必要がなくなります。

# テーマを Dracula に変更(--list-themes で一覧確認可能)
--theme="Dracula"

# 行番号や Git 差分など、すべての装飾を表示
--style="full"

# イタリック体を使用する
--italic-text=always

4. 開発効率をブーストする「便利な使い方」

単なる cat の代わりとして使うだけではもったいない!bat は他の CLI ツールと組み合わせることで真価を発揮します。

① Git 差分のプレビュー

git diff をカラーで見やすく表示できます。

git diff | bat

② tail -f の強化版

ログファイルをリアルタイム監視しつつ、シンタックスハイライトを効かせることができます。

tail -f /var/log/syslog | bat --paging=never -l log

③ fzf のプレビューウィンドウに統合

これが最強の組み合わせです。ファイル選択ツール fzf の横で、ファイルの中身を bat で爆速プレビューします。

fzf --preview 'bat --color=always --style=numbers --line-range=:500 {}'

④ batman (Man ページのカラー化)

bat-extras というスクリプト群を導入すると、man ページ(マニュアル)を bat 経由でカラー表示する batman コマンドが使えるようになります。視認性が爆上がりします。

💡 まとめ:CLI はもっと楽しくなる

bat は、単なる「表示ツール」を超えて、ターミナルでのコードリーディングを格段に快適にするツールです。特に Rust 製ならではの高速な動作は、日々の開発リズムを乱しません。

まずは alias cat='bat' をシェルの設定ファイル(.zshrc.bashrc)に書き込むところから始めてみてください。きっと、もう普通の cat には戻れなくなるはずです。

コメント

タイトルとURLをコピーしました