Help us understand the problem. What is going on with this article?

【ターミナル改造⑤】便利なcatコマンドを、更に装飾して高機能にしてくれる「bat」コマンドを導入

More than 1 year has passed since last update.
  • 白黒ターミナルを利用する生活が多くなってきた無機質生活に、少々彩りを加えるために奔走する記事第五弾。
  • 外観重視による、心身からの効率性の道を、とことん追求し続けた、ここ最近の日常。
  • 今回は、内容の表示や連結の際に用いるcatコマンドを「装飾・更なる視覚化」をしてくれるbatコマンドを試用していくことにしよう。

概要

  • Rust製の、ファイルの内容表示や連結が可能なコマンドツール。
  • 同様のcatコマンドに比べて、「表示内容の色付け表示・ページング表示」等の、高機能さや便利さを備えている。
  • 公式GitHub
  • 公式日本語ドキュメント

特徴

ハイライト表示

  • ファイル内容の言語に対応したシンタックスハイライトでの表示をしてくれる。

ページング表示

  • catコマンドの全表示とは違い、標準で内容をlessコマンドに出力するため、読みやすいページング表示が可能。

ファイル連結

  • catコマンド同様、出力や複数ファイルの内容を、連結することが可能。

作業環境

  • Mac OS X 10.13.4
  • Homebrew 2.1.4

インストール

Mac

  • 下記のコマンドをうち、batの利用環境を構築する。
    • ※Homebrew未導入の場合、こちらを参考にインストールする。
# brewでbatをインストール
$ brew install bat

Windows

  • 下記のコマンドをうち、batの利用環境をchocolateyで構築する。
    • ※Chocolatey未導入の場合、こちらを参考にインストールする。
$ choco install bat

Linux(Debian)

  • 下記のコマンドをうち、batの利用環境をdpkgで導入する。
$ sudo dpkg -i bat_0.11.0_amd64.deb

その他環境

  • 上記以外の環境でのインストール方法は、こちらの公式Githubのインストール欄を参考にする。

結果

  • 下記、実際の画面。

screen.png

  • 複数ファイルの表示も可能。

screen2.png

  • ファイル連結も可能。

screen3.png

  • テーマ指定での表示も可能

screen4.png

基本操作

  • batの基本操作コマンドとしては、下記。
内容 コマンド
通常表示 bat ファイル名
行数のみ表示 bat -n ファイル名
不可視文字(空白文字等)の可視化 bat -A ファイル名
内容のみの表示 bat -p ファイル名
内容のみの表示、ページング無効化 bat -pp ファイル名
指定範囲行での表示 bat -r3:7 ファイル名
※1行目からの指定の際は、bat -r:5のように省略可能
対応言語リストの表示 bat --list-languages
言語の指定 bat -l 言語 ファイル名
対応テーマの表示 bat --list-themes
指定テーマでの表示 bat --theme テーマ名 ファイル名
ファイル連結 bat ファイル名 ファイル名 > 結合ファイル名
バージョン確認 bat -V
ヘルプページ表示 bat -h

カスタマイズ設定

  • batの各種設定をしていく場合は、下記で環境変数として設定する。

    • デフォルトでのテーマ設定は、~/.bash_profile等のファイルに、下記を記述する。
      • export BAT_THEME="テーマ名"
    • デフォルトでのページャー設定は、~/.bash_profile等のファイルに、下記を記述する。
      • export BAT_PAGER="less -RF"

まとめ

  • 今回はファイルのハイライト表示ということで、装飾多用による色覚中毒に陥りながら、記事を書く。
  • とうとうCLIにも、多彩性を当然のように求めてしまう現代エンジニア。
  • 改造欲求は果てしなく続いてしまうと悟ったため、外観設定以外のも探してみることにしよう。

参考

t_o_d
Webエンジニア。 沖縄在住。 よろしくお願いいたします。
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした