Skip to main content

캐러티 세션에서 터미널 페이저 비활성화

많은 CLI 도구(Git 등)는 less 같은 페이저를 사용해 스크롤 가능한 출력 방식을 제공합니다. Careti 터미널 명령을 실행할 때 이 인터랙션이 방해가 될 수 있으며, 페이저가 첫 페이지에서 멈춰 작업이 진행되지 않기도 합니다. 이때 Careti 실행한 터미널에서는 페이저가 비활성화되도록 셸 설정을 추가할 수 있습니다.

동작 방식

Careti 명령을 실행하는 터미널에 환경 변수를 설정합니다:

  • CLINE_ACTIVECareti 실행한 셸이면 값이 비어 있지 않습니다.

셸 시작 파일에서 이 변수를 감지해 Careti 세션에서만 환경 변수나 alias를 바꿀 수 있습니다. 그러면 평소 사용하던 터미널은 그대로 유지됩니다.

빠른 설정 (Zsh/Bash)

~/.zshrc, ~/.bashrc, ~/.bash_profile 중 사용 중인 파일에 아래를 추가하세요:

# 캐러티가 실행한 터미널에서 페이저 비활성화
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은 Git이 less를 호출하는 것을 막습니다.
  • SYSTEMD_PAGER=cat은 systemd 도구의 페이징을 비활성화합니다.
  • LESS="-FRX"less를 스트리밍 출력처럼 동작하게 합니다.

이 설정은 CLINE_ACTIVE가 있을 때만 적용되므로 일반 터미널은 기존 동작을 유지합니다.

확인

  • Careti 터미널 명령을 실행한 뒤 다음을 확인하세요:
    • echo "$CLINE_ACTIVE"가 비어 있지 않음
    • git log 같은 긴 출력이 멈추지 않고 스트리밍됨
  • 적용되지 않는다면:
    • 올바른 시작 파일(~/.zshrc 또는 ~/.bashrc)을 수정했는지 확인
    • VS Code/Cursor를 재시작해 통합 터미널이 설정을 다시 로드하도록 함
    • 터미널 프로필에서 해당 rc 파일을 소스로 읽는지 확인

선택 사항

  • 환경 변수를 쓰고 싶지 않다면 명령 옵션을 사용할 수 있습니다:
# 일회성 실행 (alias 없음)
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
# less를 비대화형으로 사용
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는 현재 쉘에만 적용되고, 환경 변수는 자식 프로세스에 전파됩니다. 워크플로우에 맞는 방식을 선택하세요.