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가 비활성화된 환경에서는 안전하게 무시하도록 처리해 주는 더 편리한 진입점이에요.
각 함수의 정확한 시그니처와 지원 옵션은 아래 함수 문서에서 확인할 수 있어요.
더 알아보기
- IO — 터미널 입출력 함수
- IO.ANSI.format/1 — 시퀀스를 아톰 기반으로 다루는 상위 API
- ANSI escape code (Wikipedia) — ANSI 이스케이프 시퀀스에 대한 배경 지식