Skip to main content

在 Careti 会话中禁用终端分页器

很多 CLI 工具(如 Git)会使用 less 作为分页器。Careti 执行命令时分页器会阻塞输出,影响自动化。可以仅在 Careti 会话中禁用分页器。

原理

Careti 会在它启动的终端中设置环境变量:

  • CLINE_ACTIVE — 表示该 shell 由 Careti 启动

在 shell 启动脚本中检测该变量,仅对 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 分页
  • SYSTEMD_PAGER=cat 禁用 systemd 分页
  • LESS="-FRX" 让 less 更像流式输出

验证

  • Careti 运行终端命令后:
    • echo "$CLINE_ACTIVE" 应输出非空
    • git log 等不应停在分页器

可选方案

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