IO.ANSI

IO.ANSI

ANSI 이스케이프 시퀀스(escape sequence)를 렌더링하는 기능을 제공하는 모듈이에요. ANSI 이스케이프 시퀀스는 텍스트에 내장된 문자들로, 비디오 텍스트 터미널에서 서식·색상·기타 출력 옵션을 제어하는 데 사용돼요.

ANSI 이스케이프는 보통 모든 Unix 터미널에서 활성화돼 있어요. Windows 10부터는 Windows 콘솔에서도 사용 가능한데, 레지스트리에서 현재 사용자에 대해 명시적으로 활성화해야 해요. 다음 명령을 실행하면 돼요.

reg add HKCU\Console /v VirtualTerminalLevel /t REG_DWORD /d 1

위 명령을 실행한 뒤에는 현재 콘솔을 다시 시작해야 해요.

출처: IO.ANSI

본문

예시 (Examples)

ANSI 이스케이프 시퀀스는 텍스트에 내장되므로, 이 함수들의 일반적인 사용법은 출력을 텍스트와 연결(concatenate)하는 거예요.

formatted_text = IO.ANSI.blue_background() <> "Example" <> IO.ANSI.reset()
IO.puts(formatted_text)

더 높은 수준이고 더 편리한 API는 IO.ANSI.format/1로도 사용 가능해요. 여기서는 각 ANSI 이스케이프 시퀀스를 나타내는 데 아톰을 쓰고, 기본적으로 ANSI가 활성화됐는지 확인해요.

IO.puts(IO.ANSI.format([:blue_background, "Example"]))

ANSI가 비활성화된 경우 ANSI 이스케이프 시퀀스는 그냥 버려져요.

사용법

이 모듈은 텍스트 색상, 배경색, 및 기타 터미널 서식 옵션을 제어하는 함수들을 제공해요. 함수들은 이스케이프 시퀀스 문자열을 반환하고, 이를 다른 ANSI 함수의 출력이나 일반 텍스트와 이어 붙여 원하는 출력을 구성해요. 예를 들어 전경 텍스트를 빨간색으로 바꾸려면 IO.ANSI.red/0을 쓰고, IO.ANSI.reset/0으로 서식을 원래대로 되돌릴 수 있어요. IO.ANSI.format/1 함수는 이런 시퀀스들을 아톰 기반으로 표현하고, ANSI가 비활성화된 환경에서는 안전하게 무시하도록 처리해 주는 더 편리한 진입점이에요.

각 함수의 정확한 시그니처와 지원 옵션은 아래 함수 문서에서 확인할 수 있어요.

더 알아보기