Windowsのcatは何かと使いづらい。UTF-8なのかShift JISなのかで挙動が変わるし、ターミナルの文字エンコーディングに左右される。

batを使うと、そうしたことは綺麗に解決できる。する。 cargo install bat でインストールできるので手軽に使えるし、Releasesよりバイナリを配置してインストールもできる。

https://github.com/sharkdp/bat

ただ、このままだとページャーが働いてしまってcatと挙動が異なってしまうので、bat -pP とするとcatに近い挙動になる。これでだいぶシェルライフが快適になり、日本語交じりのファイルがあっても怖くなくなる。

シンタクスハイライトも効くし、パイプに渡してもcatと同じ挙動になるので、自分は完全に置き換えてしまっている。例えばnushellなどでは alias cat = bat -pP とすれば、cat自体を置き換えることができる。

Powershellの場合は、以下のようにするとよいと思う。動作確認はしていないので注意。(参考記事 (Qiita)

function cat(){
	bat -pP $args
}

このエントリーをはてなブックマークに追加follow us in feedly