Skip to main content

Careti セッション中のターミナルページャーを無効化

多くの CLI ツール(Git など)は less などのページャーを使用します。Careti がターミナルでコマンドを実行する際、このインタラクティブな挙動が止まりの原因になることがあります。Careti セッションだけページャーを無効化する設定が可能です。

仕組み

Careti はコマンド実行用ターミナルに環境変数を設定します:

  • CLINE_ACTIVECareti によって起動されたシェルで非空

この変数をシェル設定で検出し、Careti セッションのみ設定を変更します。

クイック設定 (Zsh/Bash)

~/.zshrc~/.bashrc~/.bash_profile に追加:

# Careti セッションでページャーを無効化
if [[ -n "$CLINE_ACTIVE" ]]; then
export PAGER=cat
export GIT_PAGER=cat
export SYSTEMD_PAGER=cat
export LESS="-FRX"
fi
ℹ️Note
  • PAGER=cat で一般的なページャーを無効化
  • GIT_PAGER=cat で Git の less を防止
  • SYSTEMD_PAGER=cat で systemd ページャー無効化
  • LESS="-FRX"less をストリーミング出力風に

CLINE_ACTIVE がある場合のみ適用され、通常のターミナルには影響しません。

確認

  • Careti でターミナルを実行後、次を確認:
    • echo "$CLINE_ACTIVE" が非空
    • git log などが止まらず出力
  • 反映されない場合:
    • 正しい rc ファイルを編集したか確認
    • VS Code/Cursor を再起動
    • ターミナルプロファイルが rc を読み込むか確認

オプション

  • 環境変数を使わずに CLI オプションで無効化:
# 一回だけ
git --no-pager log -n 50 --decorate --oneline
systemctl --no-pager status nginx
journalctl --no-pager -u nginx -n 200
less -FRX README.md
  • Careti セッションのみ alias を設定する方法:
if [[ -n "$CLINE_ACTIVE" ]]; then
alias less='less -FRX'
alias git='command git --no-pager'
alias systemctl='command systemctl --no-pager'
alias journalctl='command journalctl --no-pager'
fi
  • ツール固有のページャー変数も利用可能:

    • Git: GIT_PAGER=cat
    • Systemd: SYSTEMD_PAGER=cat
    • Man: MANPAGER=cat
  • alias は現在のシェルのみ、環境変数は子プロセスへ伝播します。ワークフローに合わせて選択してください。