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는 현재 줄을 지웁니다.

참고사이트
http://rrbrandt.dee.ufcg.edu.br/en/docs/ansi/cursor

728x90