Markdownレンダリング
Qwen Code は一般的なMarkdown構造をTUI上で直接レンダリングするため、ターミナルを離れることなくモデルの回答を読みやすく表示できます。レンダラーはオリジナルのソースにアクセスしやすいよう設計されており、MermaidダイアグラムやLaTeX数式などのビジュアルブロックも対象です。
レンダーモードとRawモード
デフォルトでは、Markdownはrenderモードで表示されます。サポートされているブロックは、可能な場合にビジュアルプレビューとしてレンダリングされます:
- Mermaidフェンスコードブロック
- Markdownテーブル
- タスクリスト
- ブロッククォート
- インラインおよびブロックLaTeX数式
- シンタックスハイライト付きフェンスコードブロック
Alt/Option+M を押すと、現在のセッションのモードを切り替えられます。macOSでは、このショートカットを使うにはターミナルがOptionをMetaとして送信する必要があります。そうでない場合、Option+Mは通常のテキスト入力として扱われます。
render: サポートされているMarkdownをリッチなターミナルプレビューで表示。raw: Mermaid、テーブル、LaTeXなどのビジュアルブロックをソース指向のMarkdownで表示。
デフォルトでQwen Codeをrawモードで起動するには、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オプションの環境変数:
| Variable | Description |
|---|---|
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ソースをコピーするには、以下のコマンドを使用します:
| Command | Behavior |
|---|---|
/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エンジンではなく、行列、整列された数式、大きなネスト式などの複雑なレイアウトは簡略化される場合があります。
インラインの$...$式は、不正形式または非常に大きな生成Markdownがターミナルレンダリングを停止させないよう、1行あたり1024文字に制限されています。長い数式はソーステキストとして表示され続け、rawモードまたはオリジナルの応答からコピーできます。
LaTeXソースのコピー
最後のAI応答からLaTeXソースをコピーするには、以下のコマンドを使用します:
| Command | Behavior |
|---|---|
/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応答からフェンスコードブロックを読み取ります:
| Command | Behavior |
|---|---|
/copy code | 最後のフェンスコードブロックをコピーします。 |
/copy code 2 | 2番目のフェンスコードブロックをコピーします。 |
/copy code typescript | 最後のtypescriptコードブロックをコピーします。 |
/copy code mermaid 1 | 最初のmermaidコードブロックをコピーします。 |
以前のAIメッセージを選択する
デフォルトでは/copyは最新のAIメッセージを対象とします。コマンドの前に正の整数を付けると、最新からN番目のAIメッセージからコピーできます。最新の返信が低価値(TODO更新など)で、実質的な出力が1〜2ターン前にある場合に便利です。
| Command | Behavior |
|---|---|
/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番目を対象とします。