Markdown レンダリング
Qwen Code は TUI 内で一般的な Markdown 構造を直接レンダリングするため、ターミナルから離れることなくモデルの回答を読みやすくします。レンダラーは、特に Mermaid 図や LaTeX 数式などの視覚的なブロックについて、元のソースにアクセスできるように設計されています。
Render モードと Raw モード
デフォルトでは、Markdown は render モードで表示されます。サポートされているブロックは、可能な限り視覚的なプレビューとしてレンダリングされます:
- Mermaid フェンスコードブロック
- Markdown テーブル
- タスクリスト
- ブロッククオート
- インラインおよびブロック LaTeX 数式
- シンタックスハイライト付きフェンスコードブロック
Alt/Option+M を押すと、現在のセッションのモードが切り替わります。macOS では、このショートカットのためにターミナルが Option を Meta として送信する必要があります。そうしないと、Option+M は通常のテキスト入力として扱われます。
render: サポートされている Markdown に対してリッチなターミナルプレビューを表示します。raw: Mermaid、テーブル、LaTeX などの視覚的なブロックに対してソース指向の Markdown を表示します。
デフォルトで raw モードで Qwen Code を起動するには、ui.renderMode を設定します:
{
"ui": {
"renderMode": "raw"
}
}受け入れられる値は "render" と "raw" です。ショートカットは現在のセッションビューのみを変更し、設定ファイルを書き換えることはありません。
Mermaid
フェンスされた mermaid コードブロックは render モードで視覚的にレンダリングされます。TUI は階層的な戦略を使用します:
- 有効かつサポートされている場合、Qwen Code は Mermaid CLI (
mmdc) に図を PNG にレンダリングするよう依頼し、ターミナルイメージプロトコルに送信します。 - ターミナルイメージが利用できなくても
chafaがインストールされている場合、同じ PNG を ANSI ブロックグラフィックスに変換できます。 - それ以外の場合、Qwen Code はターミナルのワイヤーフレームまたはコンパクトなテキストプレビューにフォールバックします。
- Mermaid 図の種類がプレビューできない場合、Qwen Code はプレースホルダーの背後に隠す代わりに、元のフェンスソースを表示します。
Mermaid イメージレンダリングはデフォルトで無効になっています。外部レンダラーとターミナルイメージのサポートが必要だからです。次のように有効にします:
QWEN_CODE_MERMAID_IMAGE_RENDERING=1 qwenオプションの環境変数:
| 変数 | 説明 |
|---|---|
QWEN_CODE_MERMAID_IMAGE_RENDERING=1 | 外部 Mermaid イメージレンダリングを有効にします。 |
QWEN_CODE_DISABLE_MERMAID_IMAGES=1 | 他の場所で有効になっていても Mermaid イメージレンダリングを無効にします。 |
QWEN_CODE_MERMAID_IMAGE_PROTOCOL=kitty | Kitty プロトコル出力を強制します。Kitty や Ghostty などのターミナルで有用です。 |
QWEN_CODE_MERMAID_IMAGE_PROTOCOL=iterm2 | iTerm2 インラインイメージを要求します。インタラクティブ TUI レンダリングはテキスト/ANSI にフォールバックします。 |
QWEN_CODE_MERMAID_IMAGE_PROTOCOL=off | ターミナルイメージプロトコルを無効にし、テキストまたは chafa フォールバックを許可します。 |
QWEN_CODE_MERMAID_MMD_CLI=/path/to/mmdc | 特定の Mermaid CLI 実行可能ファイルを使用します。 |
QWEN_CODE_MERMAID_ALLOW_NPX=1 | mmdc がインストールされていない場合、Qwen Code が npx @mermaid-js/mermaid-cli を実行できるようにします。 |
QWEN_CODE_MERMAID_ALLOW_LOCAL_RENDERERS=1 | node_modules/.bin 以下のプロジェクトローカルのレンダラーバイナリを許可します。 |
QWEN_CODE_MERMAID_RENDER_WIDTH=1200 | PNG レンダリング幅を上書きします。 |
QWEN_CODE_MERMAID_RENDER_TIMEOUT_MS=10000 | 外部レンダリングのタイムアウトを上書きします。上限は 60000 ms です。 |
QWEN_CODE_MERMAID_CELL_ASPECT_RATIO=0.5 | ターミナルフォントセルのジオメトリに対する画像行のフィットを調整します。 |
最初のイメージレンダリングは遅くなることがあります。特に npx が Mermaid CLI を解決またはダウンロードする必要がある場合です。ストリーミング中、Qwen Code は制限付きのテキストプレビューを表示し、モデルの応答が完了した後にのみイメージレンダリングを試みます。
Mermaid ソースのコピー
レンダリングされた各 Mermaid ブロックには、次のようなソースヒントが含まれています:
Mermaid flowchart (TD) · source: /copy mermaid 1次のコマンドを使用して、最後の AI 応答から Mermaid ソースをコピーします:
| コマンド | 動作 |
|---|---|
/copy mermaid | 最後の Mermaid ブロックをコピーします。 |
/copy mermaid 1 | 最初の Mermaid ブロックをコピーします。 |
/copy code mermaid | 最後のフェンスされた mermaid コードブロックをコピーします。 |
/copy code mermaid 1 | 最初のフェンスされた mermaid コードブロックをコピーします。 |
/copy code 1 は Mermaid ブロックだけでなく、すべてのフェンスコードブロックをカウントします。レンダリングされたタイトルに表示される Mermaid 固有のシーケンスが必要な場合は、/copy mermaid N を使用してください。
LaTeX 数式
Qwen Code はターミナル内で基本的なインラインおよびブロック LaTeX レンダリングをサポートしています:
Inline math: $x = \frac{-b \pm \sqrt{b^2 - 4ac}}{2a}$
$$
\sum_{n=1}^{\infty} 1/n^2 = \pi^2/6
$$レンダラーは一般的な記号と読みやすいターミナル出力に焦点を当てています。完全な TeX エンジンではありません。行列、整列された方程式、大きな入れ子式などの複雑なレイアウトは簡略化される場合があります。
インラインの $...$ 式は、1行あたり1024文字に制限されています。これにより、不正な形式や非常に大きな生成 Markdown がターミナルレンダリングを停止させることを防ぎます。長い数式はソーステキストとして表示され、raw モードまたは元の応答からコピーできます。
LaTeX ソースのコピー
次のコマンドを使用して、最後の AI 応答から LaTeX ソースをコピーします:
| コマンド | 動作 |
|---|---|
/copy latex | 最後のブロック LaTeX 式をコピーします。 |
/copy latex 2 | 2番目のブロック式をコピーします。 |
/copy latex inline | 最後のインライン式をコピーします。 |
/copy latex inline 2 | 2番目のインライン式をコピーします。 |
/copy inline-latex 2 | /copy latex inline 2 のエイリアスです。 |
インライン LaTeX は、散文を騒がしくしないために、レンダリングされたテキストに式ごとのコピーヒントを表示しません。インラインソースをその場で確認したい場合は、Alt/Option+M で raw モードに切り替えてください。macOS では、これには Option-as-Meta ターミナル入力が必要です。
一般的なコードのコピー
/copy code コマンドは、最後の AI Markdown 応答からフェンスコードブロックを読み取ります:
| コマンド | 動作 |
|---|---|
/copy code | 最後のフェンスコードブロックをコピーします。 |
/copy code 2 | 2番目のフェンスコードブロックをコピーします。 |
/copy code typescript | 最後の typescript コードブロックをコピーします。 |
/copy code mermaid 1 | 最初の mermaid コードブロックをコピーします。 |
以前の AI メッセージの選択
デフォルトでは、/copy は最新の AI メッセージを対象とします。コマンドの前に正の整数を付けると、代わりに N 番目に古い AI メッセージからコピーします。最新の返信が情報量の少ないもの (例:TODO 更新) で、実質的な出力が1つか2つ前にある場合に便利です。
| コマンド | 動作 |
|---|---|
/copy 2 | 最後から2番目の AI メッセージ全体をコピーします。 |
/copy 3 | 最後から3番目の AI メッセージ全体をコピーします。 |
/copy 2 code python | 最後から2番目のメッセージから最後の python コードブロックをコピーします。 |
/copy 3 latex | 最後から3番目のメッセージから最後の LaTeX ブロックをコピーします。 |
/copy 1 は /copy と同等です。N がセッション内の AI メッセージ数を超える場合、/copy は何もコピーせずに実際の数を報告します。先頭の整数がない場合、/copy code python 2 などのサブセレクターは既存の意味(最後のメッセージの2番目の python ブロック)を保持します。
現在の制限
- Mermaid イメージレンダリングは Mermaid CLI とターミナルイメージのサポートに依存します。
- 非同期 iTerm2 インラインイメージ配置は TUI で無効になっています。プロトコルがカーソル位置に依存するためです。インタラクティブなイメージプレビューには Kitty/Ghostty または ANSI フォールバックを使用してください。
- ワイヤーフレーム Mermaid レンダリングは読みやすいターミナルプレビューであり、完全な Mermaid レイアウトエンジンではありません。
- Raw モードはレンダリングされた Markdown ブロック全体に対してグローバルであり、ブロックごとの切り替えはできません。
- LaTeX レンダリングは一般的な記号と式をカバーしており、完全な TeX レイアウトではありません。
- ソースコピーコマンドはデフォルトで最後の AI 応答を対象とし、
/copy N ...として呼び出された場合は N 番目に古いものを対象とします。