iTerm2の2.9以降でインライン画像表示できるようになってた
タイトルの通り、最近のiTerm2では、シェルでインライン画像表示できるようになってた
iTerm2 v3 画像表示 使い道
— Issei Naruta (@mirakui) 2016年2月19日
詳しくはこちら
どういうこと?
以下の画像のようなことができる(上のURLからサポートスクリプトをおとして入れる必要がある)
どうなってんの?
エスケープシーケンス的なものを駆使して、すこしのパラメタと、base64にエンコードされたボディのデータを受け付けた時にiTerm2がよしなにしている。
みんな大好きアニメーションGifもサポートだ
使い方は?
Images - Documentation - iTerm2 - macOS Terminal Replacement
からサポートスクリプトをDLして、+xして使う。(ただし、一部環境については後述)
使い道は?
手元で画像がみれてもあまりうれしくないだろうが、sshでログインしてるサーバーの画像をシュッと表示できるのは便利ではないだろうか(どうだ?)
たとえば、当方では雑にサーバー内にしかけたmrtgの画像をhttpd経由でなく、scpもせず、すぐに見れるので良い…気がする。
むつかしい点
watch imgcat *_graph.jpg
とかできればよかったけど、watchとかlessとかはエスケープシーケンスがアレでアレなのでダメだった。ちょっと工夫が必要。
あと、ファイルDLもできる。
指定したファイルを~/Downloads
にダウンロードできる。これもscpで十分でh(以下略)便利。
XMODEMと言う単語をおもいだしますね。
一部Linuxの問題
imgcatをしても、画像がでてこないで0KbyteのファイルをDownloadした状態となることがある。*1
内部でコールしているbase64のオプションが微妙なので
echo -n "$3" | base64 $BASE64ARG | wc -c | awk '{printf "size=%d",$1}'
を
echo -n "$3" | base64 | wc -c | awk '{printf "size=%d",$1}'
とかしたら表示できた。
まとめ

*1:imgcat img.jpg > /dev/null とかすると、エラーがでてるのに気付く