ほとんどのLinuxユーザーはこのコマンドを知っている cat まあ、これはターミナルでテキストファイルの内容を表示する最も簡単な方法です。しかし、時が経つにつれ、よりスマートで洗練された代替手段が登場しました。 batシンプルさと、私が欠けている高度な機能を兼ね備えています。 cat.
bat 単にテキストを表示するだけでなく、コードの色分けや行番号の自動表示、Git などのツールとファイルを統合する機能などが追加され、便利で視覚的に魅力的な方法でファイルを表示できます。
一度試したユーザーの多くは、二度と戻ってきませんでした。 cat 次に、期待を上回る読み取りと整理のエクスペリエンスを提供するからです。
以下では、 bat 優れたパフォーマンス cat、そしてそれをインストールして使用する方法と、ターミナルでの作業をより速く明確にする方法について説明します。
Batは自身を「翼を持った猫」と表現していますが、これは面白いですが、やや誤解を招くような比喩です。Batは、構文の強調表示とgitの差分のマークという2つの主な目的を持つツールです。
bat を最適に使用する方法を理解するために、これらの例では、コマンドがどのように機能するか、さまざまなオプションで何ができるかを示します。
デフォルトでbat構文の強調表示
bat の基本的な機能を実証するには、選択した言語のソース コード ファイルで bat を実行するだけです。次に例を示します。
bat tile.js
短いファイルの場合、bat は出力を送信し、コマンド プロンプトに戻ります。
この場合、batの主な機能は、ANSIカラーを使用してファイルに言語のハイライトを追加することです。C言語からHTML、Markdownまで、多くの言語でこの機能を使用できます。
助言
bat でサポートされているすべての言語を表示するには、--list-languages オプションを使用します。
--theme オプションを使用すると、bat が使用する特定の色を変更できます。例えば、gruvbox-dark テーマでハイライトされた前のファイルの冒頭部分を以下に示します。
警告
batは「catのクローン」と自称していますが、実際にはそうではありません。catコマンドは様々な用途で使用できますが、本来の目的はファイルの連結(concatenate)でした。catは依然としてこの目的に最適なツールですが、batはファイルビューアとしての使用感を向上させています。
バットはポケットベルを賢く使う
ファイルが長すぎてコマンドウィンドウに収まらない場合、batはページャを使用して対話型バージョンを表示します。これは、manページを表示するページャと同じものを使用する限り、同じように機能します。デフォルトでは、batはページャの使用量を少なくしますが、代替手段として以下の2つのオプションがあります。
bat が他のプログラムとは異なるページャーを使用するようにしたい場合は、PAGER 変数を変更するか、BAT_PAGER を使用します。
–pager オプションを使用して、コマンド(またはプログラムへのパス)を指定します。これはコマンドラインまたはbat設定ファイルから実行できます。
Batがページャーを使う時と使わない時があるのは、混乱したり、気が散ったりするかもしれません。その場合は、--paging オプションを使ってこの動作を変更できます。
bat --paging=always README.md
通知
bat と --paging および --pager オプションを使ってページャーを設定する方法はいくつかあります。詳細については、bat のドキュメント (man bat) を参照してください。
デフォルトでバット番号のライン
Batはデフォルトでファイルの横に行番号を表示します。使いやすさを考慮して、前のスクリーンショットではこの機能を無効にしていましたが、実際のデフォルトの動作例を以下に示します。
行番号は、ファイル内の現在位置を追跡するのに役立ちます。lesser pager はデフォルトではこの情報を表示しませんが、他の多くのツールは表示します。行番号は、ソースコードを調べて特定の行のエラーを追跡する際に特に役立ちます。-p オプションを使用すると行番号を無効にでき、-n オプションを使用すると行番号のみを表示できます。
バットは線や範囲をマークすることができます。
bat での行番号表示は、行のハイライト表示と組み合わせることで最も効果的です。行のハイライト表示は、単一行または範囲指定で使用できます。--highlight-line オプションにはいくつかのバリエーションがあります。以下に例を示します。
bat --highlight-line=7 --highlight-line=14:15 README.md
これにより、7 行目と 14 行目から 15 行目が別の背景色で強調表示されます。
同様のオプション --line-range を使用すると、特定の行または範囲のみを表示できます。
もちろん、これら 2 つを組み合わせてファイルの一部を表示し、同時に特定の行を強調表示することもできます。
Bat は Git とうまく連携します。
ソースコードの表示にbatを使っているなら、Gitを完全にサポートしていることをご存知でしょう。batは、Gitリポジトリにあるファイルを検出すると、その変更内容を表示します。
Batは、変更された行の左端に、新規(+)、削除(-)、または変更(~)を示すおなじみの記号を表示します。-diff(-d)フラグを使用すると、変更された行とその前後のコンテキスト行のみを表示できます。これは、コードの変更を確認したり、将来のプロジェクトの進捗状況を追跡したりするのに最適な機能です。
バットはパス内にいる場合はインテリジェントに動作します。
batがページャを使用するかどうかを判断する際に常識的な判断を行っている様子を見てきましたが、このツールには他にも優れた機能がいくつかあります。特に便利なのは、最適な出力タイプを検出する機能です。
Batは、出力が非対話型端末(例えば、別のプロセスやファイルなど)に送信されているかどうかを確認することでこれを実現します。これらの場合、batの構文をハイライト表示したくないと思うでしょう。そのため、batは通常出力する特殊なカラーコードを非表示にします。このモードでは、コマンドはcatのように動作し、行番号や範囲のハイライト表示など、すべての装飾を無効にします。
パス内にある場合でも、batにフォーマットされた出力を強制的に生成させることができます。これは、出力を渡すコマンドがANSIカラーコードに対応していることが分かっている場合、例えば最も一般的なポケベルのように便利です。
bat -f README.md | most
--force-colorization (-f) オプションは、bat にすべての色と装飾を保持するように強制するため、--plain (-p) オプションの逆になります。
バットは人間にも有効だ
man が Linux コマンドの指示を表示するために使用するページャーを設定できるため、より良い結果を得るために bat を使用するように設定することもできます。
これを行うには、man を実行し、MANPAGER を次のように設定します。
MANPAGER="sh -c 'col -bx | bat -l man -p'" man ls
このコマンドは複数のタスクを実行するため、少し説明が必要です。まず、MANPAGER変数を設定し、最後に「man ls」を実行します。この構文(「NAME=VALUE command」)は、次のコマンドの環境変数を設定する簡単な方法です。
MANPAGER 値は、sh(デフォルトのユーザーインターフェース)に -c オプションをつけてコマンドを実行する呼び出しです。このコマンドは、col と bat という2つのプログラムを実行し、最初のプログラムの出力を2番目のプログラムの入力にパイプします。col プログラムは一部の書式文字を整理するのに役立ち、bat は -l man オプションを指定して実行され、man の構文を使用して色分けを行います。-p オプションはよりシンプルなスタイルを使用するため、man ページに適しています。
助言
MANPAGER 変数をユーザー設定ファイルに永続的に設定しておけば、このすべてを学習して入力する必要がなくなります。
Bat には非常に便利な設定オプションがいくつか含まれています。
おそらく既にお気づきかと思いますが、bat は高度に設定可能です。--list-languages など、便利なオプションもいくつかあります。例えば、--config-file を使えば bat の設定ファイルの場所を表示できます。
別のカラースキーム(好みは人それぞれですよね)をお探しの場合は、--list-themes オプションをお試しください。興味深いことに、この出力では装飾と色付けが行われていますが、標準オプションでこれらを無効にすることができます。
このツールは、特定のフォーマットの詳細を制御するためのシンプルなオプションもいくつかサポートしており、出力を微調整できます。「–tabs n」はスペース内のタブの幅を調整し、「–chop-long-lines」は画面幅よりも長い行をすべて短くし、「–squeeze-blank」は空行を1行に圧縮します。
Batは、Rustで書かれたLinuxコマンドラインツールの一つです。Rustエコシステムは、従来のコマンドを扱う、視覚的に豊かでインタラクティブなユーザーインターフェースアプリケーションの創出を促進しており、BatはLinuxツールキットへの素晴らしい追加機能となります。
頼るなら cat 毎日ファイルを閲覧し、体験する bat ターミナル内でのテキスト操作方法に明確な変化をもたらします。これまでの操作方法を変えるのではなく、当初から欠けていた機能を追加するものです。
コードの色分けからGitとの統合まで、 bat 美しさと機能性を兼ね備え、Linux をより快適で楽しいものにします。
自分で試してみると、今までどうやってそれがなかったのか不思議に思うかもしれません。


















