catコマンドの改善版 batコマンドについて調べた
Linuxのcatコマンドのクローンである batコマンドというのを教えてもらいました。自分で試して便利だと思ったことをまとめます。
特徴
- 言語に応じた色分けをして表示してくれる。
- Git管理されているファイルを指定すると、diffの有無を表示してくれる。
Ubuntu 22.04 でのインストール
$ sudo apt install bat
で入りました。ただしUbuntuの場合、名前衝突を避けるために /bin/batcat というコマンドが入ってしまいます。
以下、alias設定によりbatと打てばbatcatが呼ばれるようにしたことを前提とします。
基本的な使い方
bat <ファイル名>とするだけです。以下はOptunaのpyproject.tomlをbatコマンドで閲覧したときの例です。

1画面に収まらない長さのファイルを開いたときは、デフォルトではページャーとしてlessが呼ばれます。よって、行の移動などの操作方法はlessに準じます。 代表的な操作の例を以下に記します。
| 内容 | コマンド |
|---|---|
| ヘルプ表示 | h |
| 1行下へ | j (カーソルなど他の方法もあり) |
| 1行上へ | k (カーソルなど他の方法もあり) |
| 5行下へ | 5j (カーソルなど他の方法もあり) |
| 5行上へ | 5k (カーソルなど他の方法もあり) |
| 文字列の前方検索 | / |
| 文字列の後方検索 | ? |
| 30行目に移動 | 30g |
| ファイルの冒頭から20%地点に移動 | 20p| |
| ファイル先頭に移動 | g または < |
| ファイル末尾に移動 | G または > |
manコマンドのカラー化
export MANPAGER="sh -c 'col -bx | bat -l man -p'" を設定するとmanコマンドがカラーで閲覧できるようになります。以下はman 2 select した例です。

左側の行番号を省きたいとき
bat --plain <ファイル名> or bat -p <ファイル名>