Skip to main content

Отключение терминальных пейджеров во время сессий Careti

Многие инструменты CLI (например, Git) используют пейджер, такой как less, для интерактивного вывода с возможностью прокрутки. Когда Careti выполняет команды в вашем терминале, эта интерактивность мешает — пейджер может приостановиться на первой странице и заблокировать процесс. Вы можете настроить свою оболочку так, чтобы, когда терминал запускается Careti, пейджеры отключались и вывод передавался обычным способом.

Как это работает

Careti устанавливает переменную окружения для терминалов, которые он открывает для выполнения команд:

  • CLINE_ACTIVE — непустое значение, когда оболочка запущена под управлением Careti

Вы можете обнаружить эту переменную в файле запуска вашей оболочки и настроить переменные окружения или псевдонимы только для сессий, запущенных Careti. Это сохранит ваши обычные интерактивные терминалы без изменений.

Быстрая настройка (Zsh/Bash)

Добавьте следующее в ваш ~/.zshrc, ~/.bashrc или ~/.bash_profile:

# Disable pagers when the terminal is launched by Careti
if [[ -n "$CLINE_ACTIVE" ]]; then
export PAGER=cat
export GIT_PAGER=cat
export SYSTEMD_PAGER=cat
export LESS="-FRX"
fi
ℹ️Note
  • PAGER=cat гарантирует, что общие инструменты, поддерживающие пейджеры, будут печатать непосредственно в stdout
  • GIT_PAGER=cat предотвращает вызов less из Git
  • SYSTEMD_PAGER=cat отключает пейджинг в инструментах systemd (если они присутствуют)
  • LESS="-FRX" делает less более похожим на потоковый вывод, если инструмент все еще вызывает его

Эта конфигурация применяется только тогда, когда установлено значение CLINE_ACTIVE, поэтому ваши обычные терминалы сохраняют свое обычное интерактивное поведение.

Проверка

  • Откройте задачу в Careti, которая выполняет команды терминала, и проверьте:
    • echo "$CLINE_ACTIVE" выводит непустое значение
    • git log или другие длинные выводы должны передаваться без приостановки
  • Если изменения не вступили в силу:
    • Убедитесь, что вы обновили правильный файл запуска для своей оболочки
    • Перезапустите VS Code/Cursor, чтобы интегрированные терминалы перезагрузили вашу конфигурацию оболочки
    • Убедитесь, что ваш профиль терминала получает данные из вашего ~/.zshrc или ~/.bashrc

Дополнительные настройки

  • Предпочитайте параметры командной строки, когда вы не хотите полагаться на переменные среды:
# One-off usage (no aliases)
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, используя параметры вместо переменных среды:
if [[ -n "$CLINE_ACTIVE" ]]; then
# Make 'less' non-interactive by default
alias less='less -FRX'
# Disable paging for common tools via CLI flags
alias git='command git --no-pager'
alias systemctl='command systemctl --no-pager'
alias journalctl='command journalctl --no-pager'
fi
  • Если вы предпочитаете переменные окружения, многие CLI также поддерживают общую или специфичную для инструмента переменную пейджера:

    • Git: GIT_PAGER=cat
    • Systemd: SYSTEMD_PAGER=cat
    • Man pages: MANPAGER=cat (обычно не требуется для команд, управляемых Careti)
  • Псевдонимы влияют на текущую интерактивную оболочку, а переменные среды распространяются на дочерние процессы. Выберите подход, который лучше всего подходит для вашего рабочего процесса.