github / github/copilot-cli

[Bug] Shell command output (e.g. !git log) is impossible to scroll in alt_screen mode

未關閉
#1,710 0 則留言 0 個 reaction 已指派 0 人 在 GitHub 檢視
area:terminal-rendering
主要語言
Shell
星號
11.2k
分支
1.9k
平均合併
14 小時 16 分鐘
30 天內合併 PR
6

描述

## Description

When alt_screen mode is enabled (`alt_screen: true` in config.json), running shell commands via the `!` prefix (e.g., `!git log`) produces output that is too long and difficult to scroll through.

## Steps to Reproduce

1. Enable alt_screen mode: set `alt_screen: true` in `~/.copilot/config.json`
2. Launch `copilot`
3. Run `!git log` (or any command that produces output longer than one screen)
4. Try to scroll up to see earlier output

## Expected Behavior

The output from `!git log` should be scrollable, either by:
- Piping long output through a pager (like `less`) automatically
- Temporarily switching back to the normal screen buffer for `!` command output
- Providing some other mechanism to review the full output

## Actual Behavior

The output renders in the alternate screen buffer. Once it exceeds the visible terminal height, earlier lines are gone and cannot be scrolled to. This makes commands like `git log`, `git diff`, `cat` on long files, etc. effectively unusable via the `!` prefix.

## Possible Solutions

- Automatically pipe `!` command output through a pager when in alt_screen mode
- Temporarily exit alt_screen for the duration of `!` commands, then re-enter
- Capture output and render it in a scrollable view within the CLI

## Environment

- **OS**: Windows 11
- **Copilot CLI version**: 0.0.419
- **Terminal**: Windows Terminal / PowerShell
- **Config**: `alt_screen: true`

## Workaround

Use `--no-pager` with git commands (e.g., `!git --no-pager log`) or pipe to `head`/`tail`, but this is not discoverable and defeats the purpose of interactive commands.

貢獻指南

開啟貢獻指南

評估

這個 Issue 還沒有評估資料。

把新 issue 寄到你的電子郵件信箱

精選適合新手參與的 GitHub issue 摘要。