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


  • 白黒ターミナルを利用する生活が多くなってきた無機質生活に、少々彩りを加えるために奔走する記事第五弾。

  • 外観重視による、心身からの効率性の道を、とことん追求し続けた、ここ最近の日常。

  • 今回は、内容の表示や連結の際に用いる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にも、多彩性を当然のように求めてしまう現代エンジニア。

  • 改造欲求は果てしなく続いてしまうと悟ったため、外観設定以外のも探してみることにしよう。


参考