yaziとgripでターミナルのMarkdownプレビューを整えた

cmux上でファイルツリーを見たいとき、ターミナルファイルマネージャーのyaziを入れてみた。ついでにMarkdownのプレビュー環境も整備してみた。

yaziを入れた

yaziはターミナルファイルマネージャーで、cmuxのペインに常駐させておくとファイルツリーがずっと見えている状態になる。treeコマンドだと、ディレクトリの移動もできない?ので、yaziのほうが都合がいいかも。

yaziを終了したときにカレントディレクトリを引き継ぐラッパー関数を.zshrcに書いておく。これでyで起動して、qで抜けたらそのディレクトリにいる状態になる。(というのをClaude Codeがやってくれた)

右ペインでMarkdownをプレビューする

yaziには3ペイン構成(親ディレクトリ・カレント・プレビュー)があって、右ペインにファイルのプレビューが出る。デフォルトだとMarkdownはシンタックスハイライト付きのコードとして表示されるだけなので、glowを使ってレンダリングされた状態で見えるようにした。

glowはターミナル上でMarkdownをいい感じに表示してくれるツールで、brew install glowで入る。yaziのプラグインとして組み込むには、glow.yazi/main.luaを作る。

yazi.tomlでペインの比率も調整できる。プレビューを広めに取りたいので[2, 2, 5]にしてみた。

これでMarkdownファイルにカーソルを合わせるだけで、見出しやテーブルがターミナル上でレンダリングされた状態で見える。

gripでGitHub風のリッチプレビュー

glowのターミナルプレビューは手軽でいいけど、テーブルが多いドキュメントなんかはブラウザでGitHub風に見たいこともあるので、gripというのも入れてみた。

gripはGitHubのMarkdownレンダリングAPIを使ってローカルサーバーを立てるツールで、pip3 install gripで入る。yaziからgpキーで呼び出せるようにした。

grip-preview.shではgripをバックグラウンドで起動して、cmuxのブラウザタブで開いている。既存のプロセスを落としてから起動するので、何度押しても重複しない。(claude codeによるとそういうことらしい)

gripのダークテーマと横幅100%

gripのデフォルトだと背景が白いし、コンテンツの横幅がGitHubと同じ固定幅になっている。settings.pyでダークテーマのCSSを当てて、横幅もウィンドウいっぱいに広げた。

使い分け

普段のファイルブラウジングではglowのターミナルプレビューで十分で、ファイルを選ぶだけで右ペインに出るのが楽。テーブルが多い資料やリンクを確認したいときだけgpでgripを開いている。