Language/C
[C] ANSI Escape sequences
어발
2021. 10. 4. 18:21
ANSI 이스케이프 코드는 디스플레이 그래픽을 변경하고, 커서 이동을 제어하고, 키를 재할당하는 기능을 정의합니다.
ANSI 이스케이프 시퀀스는 일련의 ASCII 문자로, 처음 두 문자는 이스케이프 문자(1Bh)와 왼쪽 대괄호 문자(5Bh)입니다.
이스케이프 및 왼쪽 대괄호 뒤에 오는 문자는 키보드 또는 디스플레이 기능을 제어하는 영숫자 코드를 지정합니다.ANSI 이스케이프 시퀀스는 대문자와 소문자를 구분합니다. 예를 들어 "A"와 "a"는 완전히 다른 의미를 갖습니다.
아래에서는 커서 위치 지정에 사용되는 명령을 제시합니다. 전체 세트를 보려면 여기에서 메인 페이지를 확인하세요.
- ANSI 이스케이프 시퀀스에 사용되는 매개변수
- Pn - 숫자 매개변수. 십진수를 지정합니다.
- Ps - 선택적 매개변수. 함수를 선택하는 데 사용하는 십진수를 지정합니다. 매개변수를 세미콜론으로 구분하여 둘 이상의 함수를 지정할 수 있습니다.
- PL - 라인 매개변수. 디스플레이 또는 다른 장치의 라인 중 하나를 나타내는 10진수를 지정합니다.
- PC - 열 매개변수. 화면이나 다른 장치의 열 중 하나를 나타내는 10진수를 지정합니다.
- 커서 이동, 그래픽 및 키보드 설정을 위한 ANSI 이스케이프 시퀀스
다음 ANSI 이스케이프 시퀀스 목록에서 약어 ESC는 각 이스케이프 시퀀스의 시작 부분에 나타나는 ASCII 이스케이프 문자 27(1Bh)을 나타냅니다.- ESC[PL;PcH - 커서 위치: 커서를 지정된 위치(좌표)로 이동합니다. 위치를 지정하지 않으면 커서가 홈 위치, 즉 화면의 왼쪽 상단 모서리(0행, 0열)로 이동합니다. 이 이스케이프 시퀀스는 다음 커서 위치 이스케이프 시퀀스와 동일한 방식으로 작동합니다. 예: ESC[5;7H는 커서를 5행 7열로 이동합니다.
- ESC[PL;Pcf - 커서 위치: 이전 커서 위치 이스케이프 시퀀스와 동일한 방식으로 작동합니다. 예: ESC[4;9f는 커서를 4행, 9열로 이동합니다.
- ESC[PnA - 커서 위로: 열을 변경하지 않고 지정된 줄 수만큼 커서를 위로 이동합니다. 커서가 이미 맨 위 줄에 있으면 ANSI.SYS는 이 시퀀스를 무시합니다. 예: ESC[3A는 커서를 3줄 위로 이동합니다.
- ESC[PnB - 커서 아래로: 열을 변경하지 않고 지정된 줄 수만큼 커서를 아래로 이동합니다. 커서가 이미 맨 아래 줄에 있으면 ANSI.SYS는 이 시퀀스를 무시합니다. 예: ESC[2B는 커서를 두 줄 아래로 이동합니다.
- ESC[PnC - 커서 앞으로: 행을 변경하지 않고 지정된 열 수만큼 커서를 앞으로 이동합니다. 커서가 이미 가장 오른쪽 열에 있으면 ANSI.SYS는 이 시퀀스를 무시합니다. 예: ESC[5C는 커서를 오른쪽 5열로 이동합니다.
- ESC[PnD - 커서 뒤로 이동: 줄 변경 없이 커서를 지정된 열 수만큼 뒤로 이동합니다. 커서가 이미 가장 왼쪽 열에 있으면 ANSI.SYS는 이 시퀀스를 무시합니다. 예: ESC[4D는 커서를 왼쪽 4열로 이동합니다.
- ESC[s - 커서 위치 저장: 현재 커서 위치를 저장합니다. 커서 위치 복원 시퀀스를 사용하여 커서를 저장된 커서 위치로 이동할 수 있습니다. 예: ESC[s는 현재 커서 위치를 저장합니다.
- ESC[u - 커서 위치 복원: 커서 위치 저장 시퀀스에 의해 저장된 위치로 커서를 되돌립니다. 예: ESC[u는 "커서 위치 저장" 명령을 사용하여 저장된 위치로 커서를 이동합니다.
- ESC[J - 화면 지우기: 커서에서 화면 끝까지 화면을 지웁니다. 예: ESC[J는 커서에서 화면 끝까지 화면을 지웁니다.
- ESC[2J - 화면 지우기: 화면을 지우고 커서를 홈 위치(0행, 0열)로 이동합니다. 예: ESC[2J는 화면을 지우고 커서를 0행, 0열로 이동합니다.
- ESC[K - 줄 지우기: 커서 위치부터 줄 끝까지의 모든 문자를 지웁니다(커서 위치의 문자 포함). 예: ESC[K는 현재 커서 위치에서 줄 끝까지 줄을 지웁니다.
- ESC[2K - 줄 지우기: 줄의 모든 문자를 지웁니다. 예: ESC[2K는 현재 줄을 지웁니다.
728x90